李金訊



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