姬渭孟 于雪蓮
摘 要:針對運營商IT系統產品規則校驗復雜的情況,提出一種基于緩存的規則計算方法,通過基于緩存的實時數據存儲與規則計算,能夠實現對于整個規則計算過程,全部基于緩存實現,從而提高規則計算的效率。
關鍵詞:緩存;實時;數據;存儲;規則;計算
1 方案提出的背景
隨著通信業務的發展,尤其是近年來流量業務的快速發展,各類產品不斷推出,產品的訂購規則也越來越復雜,如產品與產品件的互斥,產品對于用戶余額、入網時間等的規則要求。在通信運營商層面,用戶進行產品訂購時,由IT系統進行規則校驗。如校驗較慢,會降低用戶體驗,影響產品推廣。
目前的主流方案是基于緩存計算裝置,包括緩存單元和計算單元,計算單元通過讀取緩存單元的規則數據,并完成計算。但需要進行多次的物理磁盤讀的操作,以獲取所需要的實例數據,存在數據讀取計算時間過長的問題。
本方案要解決的技術問題:通過數據的實時存儲,將規則計算所需要的配置數據、實例數據均保存在緩存中,并提前進行規則計算,將計算結果也保存在緩存中,這樣當需要進行規則計算時,所有的數據均從內存中獲取,避免了進行磁盤的讀寫操作,從而可以大大縮短規則計算的時間。
2 具體方案介紹
本方案提出一種方案,具體組成如下,包括5個單元,單元一:數據加載單元;單元二:原始數據緩存單元;單元三:數據服務單元;單元四:數據計算單元;單元五:數據持久化單元。
單元一:數據加載單元,原始數據加載單元的主要工作有兩項,一是在首次啟動時,會進行數據初始化工作,從BSS系統的物理數據庫,提取當前時刻全量的產品配置數據和“活躍用戶”訂購實例數據,通過數據加載功能,全量加載到單元二中,key-value方式后保存到緩存。二是對于實時的增加變化數據,提供兩種適配器,消息適配器和文件適配器,當業務系統用戶數據發生變更時,如用戶進行了產品訂購,則業務系統可以通過消息或文件的方式,與數據加載單元的對應適配器進對接,將增量變化數據同步到數據加載單元,由數據加載單元將變更
單元二:原始數據存儲單元,主要為數據存儲功能,以key-value方式將數據保存在緩存中。數據主要分為兩類,一類是用戶實例數據,一類是配置數據。實現將靜態數據緩存到共享內存中,利用共享內存實現數據的快速計算及讀取,同時采用RBTREE排序方法實現對數據的快速查找。
其中用戶實例數據緩存通過LRU(最近最少使用算法)及MRU(最近最長使用算法)實現緩存數據替換,如果緩存結果達到系統配置的內存值,將提供一定的策略將最近最不常被查詢到的數據替換出去,而將最近最常被使用的數據保持在緩存中。
單元三:數據服務單元,主要是對外提供緩存的計算和查詢服務,同時具有服務管理功能,能夠對服務進行注冊和管理,并記錄服務調用信息,并對服務調用的頻次、渠道等進行管理和控制。
單元四:數據計算單元,當熱點用戶生成或新增熱點數據后,會調用數據計算單元的數據計算模塊,完成規則的計算,并將計算結果保存在共享緩存中。
當有服務通過數據服務單元提供的數據校驗服務要求進行規則校驗時,根據服務入參提供的操作員ID,用戶ID,先到單元二中,將操作員ID+用戶ID作為Key值,獲取包括用戶訂購實例的Value值,與用戶的當前訂購實例進行比對。
1)如果比對結果一致,標識該用戶未做過其它業務操作,可以直接將規則計算結果返回
2)如果比對結果不一致,或沒有記錄,則通過單元一,重新將此用戶數據作為“熱點數據”進行加載到共享緩存,并調用數據計算模塊,快速進行規則計算,并將計算結果更新到共享緩存中。
進程管理模塊,可以依據規則計算類型,將進程進行分組,如產品互斥規則計算為單獨一組進程,產品依賴規則計算為另外一組進程,這樣當有多個產品規則計算時,可以進行多進程并行計算,從而提高計算速度。
單元五:數據持久化單元,主要采用文件或數據庫的方式,將共享緩存中心數據同步至磁盤,實現數據持久化。這樣做的好處時當單元二發生故障,重新啟動時,共享緩存中的數據會全部丟失,可以從數據持久化單元中快速恢復。而不再需要重新通過單元一進行數據的全量抽取和加載,提高了共享緩存數據恢復速度。
4 結束語
本方案的技術優點:一是通過建立“活躍用戶”的模型,降低了緩存中的數據量。二是將用戶訂購實例數據放入緩存,解決了規則計算涉及用戶實例數據時,與物理數據庫頻繁交互造成計算效率明顯下降的問題。三是通過緩存與用戶實例的對比,實現了緩存數據的強一致性,保證緩存規則計算的正確性。4四是通過將緩存計算結果保存,避免了每次規則計算都要重新計算的問題,有效提高計算效率。
本方案基于緩存平臺,實現了用戶實例等實時變化類數據的實時的存儲和計算,大大提升了規則計算的效率。