金秀鳳



摘 要:隨著大數據時代檔案信息資源的不斷增加以及用戶的不斷積累,對于檔案信息資源共享平臺的數據處理提出了新的要求,即平臺需要滿足高并發數據請求服務,同時提供的檔案信息資源共享平臺服務能夠穩定運行。文章在介紹檔案信息資源共享平臺數據處理性能需求的基礎上,比較目前常用的前后端解決檔案信息資源共享平臺數據處理性能優化的辦法,提出采用Redis緩存技術解決檔案信息資源共享平臺數據處理,詳細地論證了檔案信息資源共享平臺數據處理優化的實現及效果分析。
關鍵詞:大數據;檔案信息資源;共享平臺;數據處理優化;Redis緩存技術
Abstract:With the continuous increasing of archives information resources and the accumulation of users in the era of large data, new requirements have been put forward for the data processing of archives information resources sharing platform. The platform needs to satisfy the high concurrent data request service, and the archives information resources sharing platform service can run stably.Based on the data processing performance requirements of the file information resource sharing platform, this paper compares the commonly used methods for optimizing the data processing performance of the file information resource sharing platform. It proposes to use Redis cache technology to solve the data processing of the file information resource sharing platform. It demonstrates the realization and effect analysis of data processing optimization of archive information resource sharing platform.
Keyword:Big Data;Archive information resource;Sharing Platform;Data processing optimization;Redis caching technology
大數據時代是建立在互聯網、物聯網等現代網絡渠道廣泛收集大量數據資源基礎上的數據存儲、價值提煉、智能處理和展示的信息時代[1],大數據時代檔案信息資源共享平臺通過系統的接口開發技術將物聯網、云計算技術融合其中,使平臺對外服務具有感知與處置檔案信息能力,并為外部提供檔案信息服務的一種新模式。隨著大數據技術與移動互聯網技術的不斷完善,檔案信息資源數據規模不斷擴大,檔案信息資源共享平臺的檔案信息資源及用戶都出現了急速增長,在平臺的使用頻度與日俱增的形勢下,如何對海量的檔案信息資源數據進行高效的管理成為當前檔案信息化研究的熱點[2]。要讓檔案信息資源共享平臺快速響應用戶請求并承受不斷增加的負荷量,傳統的技術方案已很難適應現行的高頻度檔案信息服務請求。現有的技術擬采用Redis緩存技術能較好地解決檔案信息資源共享平臺數據處理性能問題[3]。
1 檔案信息資源共享平臺數據處理性能需求
檔案信息資源共享平臺的構建需要根據平臺自身的特點,即平臺建成后同時滿足包括PC、手機及平板等設備以及不同分辨率瀏覽器的使用[4]。因此,其數據處理的優化非常重要,在平臺自身的實踐應用方面,要有助于優化檔案管理流程。檔案信息資源共享平臺的建設作為檔案信息化的一部分,已被各級檔案部門重視起來,物聯網、云計算技術以及大數據技術的成熟,已為平臺建設提供了技術保障,建成后的平臺將為檔案信息資源統一管理、檔案管理工作順利開展、檔案部門對外服務提供體系框架;同時,檔案信息資源能夠實現高效互聯,檔案信息資源共享平臺與其他業務協調發展與集成,平臺性能優化實踐將指導檔案信息化業務流程優化、檔案信息資源高效管理和檔案信息服務實現多元化;此外,有助于優化檔案信息資源共享平臺的建設,提高檔案信息資源共享平臺建設質量。
檔案信息資源共享平臺數據處理性能需求方面主要包括高性能、高可靠性及高穩定性方面[5]。在高性能方面,要支持檔案信息的大數據量請求。檔案信息資源共享平臺面向的是互聯網用戶,平臺在普及推廣之后特別在移動互聯網普及的今天,用戶利用檔案平臺的場景也會越來越多。面對檔案信息的大數據量請求,平臺前期的數據處理性能指標至少要達到每秒一萬次以上的請求吞吐量。在高可靠性方面,平臺需要滿足用戶并發,在平臺的新功能投入使用、檔案檢索開放等關鍵時間點,會有眾多用戶同時操作同一個功能,這就造成了一定的并發請求,在平臺前期的并發性能指標上需要滿足一百以上的并發數據處理請求。在高穩定性方面,平臺持續穩定工作是檔案信息資源共享平臺用戶所需的最基本的要求,平臺數據處理穩定性方面需要小于萬分之一的出錯率。
2 檔案信息資源共享平臺數據處理優化技術選擇
大數據時代檔案信息資源共享平臺數據處理優化主要從以下幾個方面考慮:第一是對面向用戶的前端頁面進行優化,該部分的優化需要考慮平臺現有的資源利用,最終達到使平臺的功能頁面加載得更快、對用戶的檔案信息檢索操作響應得更及時,并能提供更為友好的用戶體驗;第二是對存儲檔案信息的數據進行優化,隨著檔案信息資源共享平臺用戶的增加及平臺本身的信息量增加,僅僅對前端頁面與數據庫優化不能滿足平臺未來的性能要求,需從緩存技術入手,研究該技術在檔案信息資源共享平臺中的部署。
2.1 檔案信息資源共享平臺緩存部署。檔案信息服務平臺在建設初期,由于檔案信息化程度不高,自身的用戶也有限,主要面向內部用戶,因此對平臺的性能要求不高。正常情況下應用服務器、數據庫服務器和文件服務器等所有的資源都在一臺服務器上。隨著互聯網技術的發展,平臺面向的用戶逐步由內部用戶轉向外部用戶,用戶的增加導致訪問檔案信息服務平臺速度越來越慢,平臺存儲的檔案信息資源變得越來越豐富,此時會將應用和數據分離,應用服務器、數據庫服務器和文件服務器獨立部署,平臺的業務邏輯由專門的應用服務器負責,此時檔案信息服務平臺的處理能力得到了很大的提升。隨著移動互聯網、物聯網技術的興起,檔案信息服務平臺的應用范圍已不局限于傳統的PC,用戶對檔案信息服務的要求越來越高,外部的用戶量也有了量的突破,檔案信息服務平臺的性能問題直接影響平臺對外服務的質量,此時緩存技術應運而生,緩存是分布式系統中的重要組件,主要解決高并發,大數據場景下,熱點數據訪問的性能問題。對于檔案信息資源共享平臺采用部署緩存的方式來解決平臺的數據處理問題,初期可以將緩存部署在應用服務器上,該方式與應用服務共享資源,訪問速度會很快,但是缺點顯而易見,會出現和應用程序爭用內存的情況,未來考慮采用遠程分布式環境技術來解決平臺的數據處理問題。檔案信息資源共享平臺緩存應用部署如圖1所示:
2.2 檔案信息資源共享平臺緩存技術選擇。檔案信息資源共享平臺為了適應大數據應用,需要采用分布式緩存技術,需要將緩存部署在獨立的服務器上,目前主流的分布式緩存有Memcached和Redis。Memcached 是一個高性能的分布式內存對象緩存系統,用于動態Web應用以減輕數據庫負載,但在緩存占用內存分配上采用預分配的內存池方式,帶來一定程度上的內存浪費,對于復雜的數據類型以及持久化方面也不能夠支持。Redis是一個開源的使用ANSI C語言編寫、支持網絡、可基于內存亦可持久化的日志型、Key-Value數據庫(支持列表、集合、哈希等眾多數據結構)[6],并提供多種語言的API。Redis只支持單線程讀寫復用網絡模型,數據存儲采用現場申請內存的方式進行,會周期性地把更新的數據寫入磁盤或者把修改操作寫入追加的記錄文件,Redis支持主從同步,數據可以從主服務器向任意數量的從服務器上同步,Redis除了緩存之外,還提供了額外的聚合計算功能。
因此,在Memcached、Redis兩種緩存技術中,Redis更適合作為平臺性能提升的緩存技術,主要原因如下:第一,Redis支持更豐富的Key-Value數據類型,檔案信息資源共享平臺需要緩存的檔案信息類型比較豐富,簡單字符串不能滿足平臺數據緩存需求;第二,在數據存儲上,Memcached全部存儲在內存上,服務重新啟動會丟失緩存信息,做不到數據持久化,而Redis會將部分數據存儲在硬盤上,這樣就能做到持久化,該特性對平臺非常重要,用戶對平臺的操作不會因為例外而發生信息丟失;第三,檔案信息從傳統的文字信息向圖片、文件等多媒體信息轉變,這對緩存存儲信息的大小有一定的要求,Redis的Value存儲最大可以達到1GB,而Memcached的Value存儲最大只有1MB。
3 檔案信息資源共享平臺數據處理優化實現及效果分析
在技術選型確定之后,實現檔案信息資源共享平臺數據處理優化,要從以下幾個方面實現平臺的數據處理優化:硬件設備上,采用高速緩存技術;前端實現上,最大限度使用用戶瀏覽器緩存,對于常用的資源訪問采用CDN技術;后端實現上,一方面數據庫中采用存儲過程,數據庫設計采用適當的冗余結構設計以便于檔案信息統計,另一方面采用Redis緩存技術以確保檔案信息資源共享平臺的高并發請求。
3.1 前端數據處理優化。檔案信息資源共享平臺的面向用戶的前端主要包括檔案信息檢索頁面、檔案信息管理維護頁面、用戶管理頁面,其中對于檢索頁面的使用最為頻繁,該功能直接面向用戶,這樣就可以有針對性地對該功能數據處理進行優化,優化的方式將CSS、JavaScript進行壓縮存儲以及功能頁面中的圖片進行合并,這樣用戶一次請求就可以完成CSS、JavaScript以及頁面樣式圖片的獲取。對檔案信息資源共享平臺而言,像CSS、JS以及圖標這些靜態資源文件更新的頻率都比較低,可以考慮將這些文件進行緩存在瀏覽器中,下次相同的頁面在有資源請求時就可以直接讀取瀏覽器緩存,這樣就可以大大提升平臺的訪問效率。平臺在前端技術使用了適應普通PC與移動設備的JS、CSS技術,相應的資源文件訪問可以采用CDN技術[7],瀏覽器請求大文件資源時,將從CDN直接返回給用戶設備,由于資源訪問的路徑采用最短路徑,這樣平臺的訪問速度將大大加快,同時減輕了檔案信息資源共享平臺的服務器負載壓力。前端數據處理優化方式匯總如圖2所示:
3.2 后臺數據庫數據處理優化。檔案信息資源共享平臺對外服務使用最為頻繁的是檔案檢索功能,在前端優化后需要對其中的涉及到的后端數據庫檢索模塊進行優化。優化點主要采用以下方式:首先是減少檔案檢索功能中數據來回訪問的數據量,盡量將檔案檢索的前置條件設置詳細并一次性提交到后臺進行數據檢索,數據庫檢索成功后將用戶需要的結果返回給用戶,通過該方式可以極大提升系統檢索的性能,最大限度減少數據訪問量,同時因為返回的數據更加精準,網絡的壓力也會大大減輕。其次是采用存儲過程技術,如果在檔案檢索過程中涉及到復雜的數據提取過程,將過程數據處理邏輯封裝到存儲過程里面,這樣就能避免通過網絡來回進行數據交互,檔案數據通過存儲過程處理后統一返回用戶請求信息,由于存儲過程采用參數的方式傳入檢索請求信息,在提升檢索性能的同時還可以避免平臺SQL依賴注入漏洞。最后是充分利用索引技術,在檔案信息最頻繁使用的檢索點使用的相關列上創建索引,可以極大地提升檢索性能[8],因為加索引在提升檢索性能的同時會降低平臺檔案信息的修改、新增與刪除功能的性能,這里可以采用將檔案信息檢索所需要的主體信息放在歷史表中,這樣可以滿足由于信息變動帶來的其他功能的性能問題。具體的后臺數據庫數據處理優化如圖3所示:
3.3 Redis緩存技術數據處理優化實現。檔案信息資源共享平臺面向用戶的信息如果都從數據庫中讀取,平臺使用量在達到一定的用戶量級之后,就存在極大的性能的問題,為了緩解數據庫的壓力,可以將不經常變化并且訪問頻繁的用戶請求檔案信息放入Redis緩存,這樣在檔案信息檢索請求發起后,首先判斷Redis緩存中是否存在用戶請求的檔案信息,如果存在就直接從Redis緩存中讀取檔案信息,這種情況下會大幅提升平臺檢索性能;如果Redis緩存中不存在用戶請求的檔案信息,將從數據庫中讀取檔案信息相關數據,同時需要將讀取到的檔案信息寫入Redis緩存,這樣在下次用戶再發起同樣的請求系統就直接讀取Redis緩存而不需要訪問數據庫。具體的檔案信息資源共享平臺Redis緩存請求實現流程如圖4所示:
Redis緩存請求實現流程Redis緩存可以在客戶端使用,為了使該技術能夠在檔案信息資源共享平臺項目中運用,需要在解決方案中加入Redis操作DLL,DLL文件同樣可以從GitHub平臺下載,DLL文件添加至引用后,需要將配置Redis操作參數寫入配置文件,在配置中需要注意Redis的端口信息為Redis服務中顯示的端口,默認端口號為6739,配置相關信息完成后需要寫一個通用Redis緩存管理器來實現獲取Redis客戶端實例,添加檔案信息實體集合到緩存中,添加字符文本類型檔案信息,獲取字符文本類型檔案信息,根據鍵名獲取檔案信息列表,獲取所有檔案信息,獲取指定條件類型檔案信息列表,刪除指定鍵緩存信息,清空緩存信息。在之后的實踐中有需要使用緩存的地方直接調用通用Redis緩存管理器即可。
3.4 檔案信息資源共享平臺數據處理緩存技術優化效果分析。準備1000萬條檔案信息數據,檔案信息數據中包含基本數據類型,如字符類型、時間類型、GUID類型,文檔信息單獨存儲,與專門存放文檔信息的表關聯,檔案信息日志數據中同樣包含1000條,用戶信息準備100萬條,平臺操作請求采用10的N次方進行遞增加壓,請求的數據條數同樣采用10的N次方進行遞增加壓,測試設備操作系統為Win10,CPU型號為英特爾酷睿i5-7200U,內存容量為8GB,硬盤為固態硬盤,測試結果如圖5所示:
通過測試結果不難發現,隨著檔案信息批量請求數量的增加,平臺每秒鐘可以支持的請求數也越來越高,同時Redis緩存技術對于并發連接的支持也很好,隨著檔案信息檢索功能使用率與使用用戶的不斷增加,采用該技術后可以有效提升平臺的數據處理效率。
總之,檔案信息資源共享平臺不僅目前要適應檔案服務綜合管理平臺、Web平臺和移動平臺,還要可擴展到移動平臺大體系[9]。通過對檔案信息資源共享平臺的數據處理優化進行研究,最終通過用戶使用的瀏覽器層面、CDN等相關前端技術,后端數據庫檢索充分利用存儲過程、索引等技術,并在后端數據訪問優化采用了Redis緩存技術,從而實現了檔案信息資源共享平臺的數據高效訪問。本課題后期仍有地方值得改進與探討,比如使用緩存技術可以顯著提升系統的性能,但對于平臺數據的實時性產生一定的影響,檔案信息在緩存期間,原始數據庫被修改了,這時終端用戶讀取到的信息實際上還是數據被修改前檔案信息,這就需要對檔案信息需要緩存的信息做出評估,進而確定緩存設置的過期時間問題,另外采用Redis緩存技術還需要考慮數據命中率問題,如何提升檔案信息訪問在Redis中命中的幾率也將成為未來研究的方向[10]。
*本文系2016年度教育部人文社會科學研究規劃基金項目《大數據時代檔案信息資源共享平臺構建的研究》(項目編號:16YJA870001)資助。
參考文獻:
[1]曹筠慧,管先海,孫洋洋.基于大數據時代的檔案價值及其開發利用探究[J].檔案管理,2017 (1):27-29.
[2]卞咸杰.大數據時代檔案信息資源共享平臺性能優化的研究[J].檔案管理,2016(6):17-20.
[3]曾超宇,李金香. Redis在高速緩存系統中的應用[J].微型機與應用,2013,32(12):11-13.
[4]卞咸杰.大數據時代檔案信息資源共享平臺前端框架的構建[J].檔案與建設.2017(10):11-15.
[5]閆中威,孫大嵬.B/S模式在線考試系統性能優化及實現[J].計算機系統應用,2016,25(10):81-85.
[6]Robert Escriva, Bernard Wong, and Emin Gün Sirer. HyperDex: A Distributed, Searchable Key-Value Store[J].Acm Sigcomm Computer Communication Review.2012,42(4):25-36.
[7]Hadrien Hours. A study of the impact of DNS resolvers on CDN performance using a causal approach[J].Computer Networks.2016, 109:200-210.
[8]高玉平.海量圖書檢索信息的快速查詢系統優化設計研究[J].現代電子技術,2017,40(6):5-9.
[9]卞咸杰.基于WCF技術的跨平臺檔案信息資源共享平臺建設的研究[J].檔案管理,2016(4):37-41.
[10]Prerna Rai. Google PageRank Algorithm: Markov Chain Model and Hidden Markov Model[J].International Journal of Computer Applications.2016,138(9):9-13.
(作者單位:鹽城工學院學生處 來稿日期:2018-08-20)