李金訊
摘要 隨著我國協(xié)同辦公系統(tǒng)在實際應(yīng)用環(huán)節(jié)的增多,傳統(tǒng)的協(xié)同辦公已經(jīng)無法從根本上滿足人們實際的辦公需求,由此,如何通過現(xiàn)階段的科學(xué)技術(shù)在實際協(xié)同辦公系統(tǒng)環(huán)節(jié)的應(yīng)用提升實際的辦公系統(tǒng)運行性能,成為了我國辦公管理者們研究的重點,其中高速緩存裝置便是其中最為常見的處理方法。本文通過對Redis高速緩存的闡述,研究這一模式在協(xié)同辦公系統(tǒng)中應(yīng)用的措施,進(jìn)而以期在根本上促進(jìn)我國協(xié)同辦公系統(tǒng)的實際運行效果。
【關(guān)鍵詞】高速緩存 協(xié)同辦公系統(tǒng) 性能 分析
協(xié)同辦公系統(tǒng)在我國已經(jīng)應(yīng)用了數(shù)年的時間,但是隨著時代的進(jìn)步、科學(xué)技術(shù)的變革,傳統(tǒng)的協(xié)同辦公系統(tǒng)已經(jīng)很難在根本上滿足我國辦公系統(tǒng)使用者們的實際需求情況,由此,為了保證實際工作中辦公系統(tǒng)的使用需求,針對協(xié)同辦公系統(tǒng)有關(guān)性能的優(yōu)化工作追在眉睫。與此同時,隨著我國對高速緩存的研究不斷深入,高速緩存技術(shù)已經(jīng)逐漸代替了原有系統(tǒng)中常見的主記憶技術(shù),并能夠更好的針對辦公系統(tǒng)使用者的需求進(jìn)行更加快速的記憶讀取操作。由此,如何將高速緩存技術(shù)應(yīng)用在實際的協(xié)同辦公系統(tǒng)中,成為了我國企業(yè)辦公管理人員研究的重點。
1 協(xié)同辦公系統(tǒng)現(xiàn)狀及使用緩存目的
1.1 現(xiàn)狀分析
目前協(xié)同辦公系統(tǒng)登錄、查閱公文、業(yè)務(wù)辦理等熱點數(shù)據(jù)都是基于數(shù)據(jù)庫讀取,不僅浪費網(wǎng)絡(luò)帶寬資源、存儲1/0資源,增加數(shù)據(jù)庫負(fù)載,而且熱點數(shù)據(jù)讀取效率較為低下,通過高速緩存技術(shù),使熱點數(shù)據(jù)直接從緩存讀取,不僅可以大大提升網(wǎng)絡(luò)帶寬,降低磁盤I/O,還能整體提升數(shù)據(jù)的讀取效率,進(jìn)一步提升系統(tǒng)性能。
1.2 使用緩存目的
緩存的目的在于加快速度,但數(shù)據(jù)本身非永久持久化,不提供數(shù)據(jù)可靠性保證。適用于使用頻度很高,數(shù)據(jù)變化不大的數(shù)據(jù)塊。在分布式應(yīng)用中,遠(yuǎn)程調(diào)用需要互相共享的信息也適用緩存來處理。
2 應(yīng)用高速緩存提升協(xié)同辦公系統(tǒng)性能的方法
2.1 Redis高速緩存介紹
Redis是一個存儲系統(tǒng)。它支持存儲的value類型相對更多,包括鏈表、字符串、有序集合和集合。這些數(shù)據(jù)類型都支持remove/push /popiadd及取交集并集和差集及更豐富的操作,而且這些操作都是原子性的。在此基礎(chǔ)上,Redis支持各種不同方式的排序。為了保證效率,數(shù)據(jù)都是緩存在內(nèi)存中。同時Redis會周期性的把更新的數(shù)據(jù)寫入磁盤或者把修改操作寫入追加的記錄文件,并且在此基礎(chǔ)上實現(xiàn)了主從同步,當(dāng)前Redis的應(yīng)用已經(jīng)非常廣泛。
2.2 設(shè)計思路
2.2.1 調(diào)用過程
調(diào)用過程如圖l所示。
2.2.2 分片和節(jié)點故障策略
按圖2的部署方式每次客戶端返回實例前,會驗證是否分片列表中的服務(wù)都存活。不存活則剔除,分片列表。當(dāng)redis從節(jié)點出現(xiàn)問題的時候。緩存服務(wù)繼續(xù)可用。運行平臺守護進(jìn)程會立刻重啟掛起的redis節(jié)點,節(jié)點會讀取內(nèi)存快照,同時從主服務(wù)器同步數(shù)據(jù),服務(wù)不中斷,數(shù)據(jù)沒有影響。
2.2.3 單機故障策略,
如圖3所示,統(tǒng)一入口主要是為了客戶端程序透明的調(diào)用服務(wù)。
2.2.4 安全性
緩存服務(wù)在redis客戶端的基礎(chǔ)上,簡單擴展了命名空間的概念。命名空間的實現(xiàn)主要是通過加Key前綴實現(xiàn)。命名空間在初始化客戶端服務(wù)時確定??紤]到單個應(yīng)用和服務(wù)不會使用很多命名空間。因此要求使用時,在spring的配置文件中進(jìn)行顯式的配置。
在客戶端的操作類中,生成一個隱式參數(shù),隨SSB上下文到達(dá)緩存遠(yuǎn)程服務(wù)。遠(yuǎn)程服務(wù)驗證該參數(shù),以驗證調(diào)用方的合法性。在不反編譯代碼的情況下,調(diào)用方就不能輕易獲取服務(wù)器的連接地址和參數(shù)。
2.2.5 對緩存的控制
(1)對基礎(chǔ)設(shè)施的總內(nèi)存大小進(jìn)行控制。
在基礎(chǔ)設(shè)施搭建時,可以對基礎(chǔ)設(shè)施使用的內(nèi)存進(jìn)行一個初始化限制,防止過度使用內(nèi)存。考慮對每個命名空間使用內(nèi)存進(jìn)行限制,同時可以動態(tài)調(diào)整。
(2)單次提交數(shù)據(jù)大小控制。
客戶端的API實現(xiàn)中,對提交數(shù)據(jù)的大小進(jìn)行控制。單次提交數(shù)據(jù)大小控制為IM。為了兼顧性能,暫時不進(jìn)行數(shù)據(jù)壓縮。在使用過程中,可以進(jìn)一步進(jìn)行調(diào)優(yōu)。
(3)調(diào)用次數(shù)控制。
在緩存服務(wù)端,針對每個命名空間的初始化請求進(jìn)行統(tǒng)計。
2.2.6 緩存控制實現(xiàn)
如圖4所示,基于以上結(jié)構(gòu)緩存客戶端第一次初始化時,會從ssb注冊中心上,調(diào)用一次緩存服務(wù)初始化。服務(wù)會返回基礎(chǔ)設(shè)施的一些相關(guān)參數(shù)。之后客戶端可以直連redis。同時,服務(wù)還會返回針對這個服務(wù)/應(yīng)用的控制參數(shù)。目前主要是可用空間。返回后.客戶端會將這個值存在內(nèi)存對象中,操作時根據(jù)這個值,進(jìn)行控制。
2.2.7 命名空間擴展
利用redis的特性。我們構(gòu)造了緩存命名空間的概念。實現(xiàn)手段主要是利用redis可以存儲多種數(shù)據(jù)格式的特征。為每個應(yīng)用/服務(wù)生成了一個hashmap。實現(xiàn)了命名空間的數(shù)據(jù)隔離。緩存客戶端使用緩存時,API會自動將KV對,存入應(yīng)用服務(wù)標(biāo)識為key的hashmap中。應(yīng)用服務(wù)標(biāo)識由API自動取。
但是根據(jù)使用需求的擴展。單個命名空間不能滿足需要。這時,API中提供了一個命名空間申請的功能。申請通過ssb訪問緩存服務(wù)端。服務(wù)端進(jìn)行記錄,記錄成功后,應(yīng)用可以使用新的命名空間。申請空間,服務(wù)端重新建立一個hashmap提供給應(yīng)用服務(wù)使用。應(yīng)用服務(wù)可以進(jìn)行清理等操作。
2.2.8 緩存空間
(1)自定義超時時間數(shù)據(jù)。API中新加入自定義超時時間的數(shù)據(jù)類型。根據(jù)使用需要??梢宰远x該Key的過期時間。單位是分鐘。有上下限制。該類型數(shù)據(jù)除非被更新時間,否則過期時間以后,redis自動進(jìn)行刪除。用來支持session類型的應(yīng)用。由于redis群集化部署,群集數(shù)據(jù)同步需要一定的時間。所以帶來了一定的故障風(fēng)險。該風(fēng)險只能加快群集同步時間來盡量避免。
(2)普通使用的數(shù)據(jù)。API中的增加和讀取方法??蛻舳藭詣訛閗ey加上一個過期時間。之后每次操作key,都會自動延長過期時間。而如果key在set后,一直沒有操作過。則默認(rèn)時間后,key過期后,自動刪除數(shù)據(jù)。
(3)緩存統(tǒng)計。目前設(shè)計上報結(jié)構(gòu)數(shù)據(jù)主要包含:
1寫入的大小記錄。每次寫記錄,用于上傳進(jìn)行統(tǒng)計。
2讀取記錄。Key,讀取次數(shù)。可以上報后,進(jìn)行統(tǒng)計。
客戶端統(tǒng)計數(shù)據(jù)的結(jié)構(gòu),封裝在API中。API在每次客戶端動作時進(jìn)行更新。為了提高性能,統(tǒng)計數(shù)據(jù)存在內(nèi)存中用于上報和更新。重啟應(yīng)用后,數(shù)據(jù)就清空。因為每次操作都需要記錄,所以放到內(nèi)存中,減小對速度的影響。
緩存客戶端初始化時,會自動觸發(fā)一個static Timer。Timer會定期調(diào)用緩存的服務(wù)端,以便上傳統(tǒng)計數(shù)據(jù),同時更新控制數(shù)據(jù)。統(tǒng)計數(shù)據(jù)對象可以抽象,以供其他需要統(tǒng)計的服務(wù)使用。緩存服務(wù)主要統(tǒng)計調(diào)用次數(shù),時間。以供分析和進(jìn)一步完善控制。
3 實現(xiàn)的結(jié)果
通過使用Redis高速緩存技術(shù),海南電網(wǎng)協(xié)同辦公系統(tǒng)性能提高20%-30%的處理能力,為海南電網(wǎng)構(gòu)建了一套高性能、安全可靠的協(xié)同辦公系統(tǒng),為各級領(lǐng)導(dǎo)和工作人員提供了優(yōu)質(zhì)服務(wù)。
綜上所述,本文通過對Redi高速緩存在協(xié)同辦公系統(tǒng)中提升系統(tǒng)運行性能方面的優(yōu)勢和措施進(jìn)行研究、分析,以期能夠在一定程度上幫助我國未來協(xié)同辦公系統(tǒng)更加高效、準(zhǔn)確的應(yīng)用同時促進(jìn)我國新型辦公模式的發(fā)展,進(jìn)一步的優(yōu)化我國企業(yè)辦公模式的高效。
參考文獻(xiàn)
[1]郭偉,余亞華,大數(shù)據(jù)時代地方高校OA協(xié)同辦公系統(tǒng)發(fā)展策略研究[J],江漢大學(xué)學(xué)報(社會科學(xué)版),2017,34 (01):103—108+127-128.
[2]吳建平,虞益誠.基于Web Service的協(xié)同辦公系統(tǒng)體系結(jié)構(gòu)與實現(xiàn)的探究[J],計算機應(yīng)用與軟件,2007 (09):124-126.