王小錦
【摘要】 本文闡述了業務發展帶來的業務支撐系統的瓶頸,分析了緩存平臺技術,從而提出緩存平臺技術在業務支撐系統的應用。
【關鍵詞】 緩存平臺 業務支撐系統 API 應用程序接口(Application Program Interface) 全表加載 懶加載
一、 引言
隨著業務的快速發展,線上線下多受理渠道的增加,以及CRM側超級限制、積分、代理商資金歸集、騰訊視頻等一些特色項目及各種外圍接口的實施,導致訂單及查詢服務效率的下降。究其根本,瓶頸還是在業務數據庫的處理性能上。
省分業務數據庫部署在AIX小型機上,硬件投入成本非常高。數據庫主機CPU使用率又逐漸增高,業務高峰期甚至高達95%多,對前臺業務受理的效率影響顯著,特別是對用戶新裝、繳費、停開機、產品變更等重要業務沖擊很大,既直接導致了用戶受理體驗的下降,也增加了業務系統的內在隱患。
因此,迫切需要找到一種切實可行的優化方式,以大幅提高整體系統的處理性能。
二、緩存平臺技術
2.1 統一存儲代替分散存儲
定制數據存儲的格式與規則。將主機上運行的各個進程私有內存中的數據統一存儲在緩存平臺中。平臺對外提供統一的訪問API。一方面,確保了數據的唯一性和一致性;另一方面,也降低了主機內存的損耗。
2.2 懶加載代替全表加載
定制數據存儲的流程。將系統運行中全表加載數據的機制改為按需懶加載機制。懶加載可以提升系統運行效率,同時也能增強客戶體驗。
2.3 數據生命周期管理
平臺存儲了各種各樣的數據,不同的數據可以定制各自的生命周期。數據的生命周期內,業務系統從緩存平臺讀取數據;數據生命周期結束后,平臺存儲的數據立刻失效,然后平臺繼續按需懶加載數據。
2.4 高效的數據查找算法
緩存平臺多處采用一些著名的算法,比如:hash算法、skip list算法、sha1算法等等。通過這些算法,一方面提高了程序運行效率,另一方面提高了程序的可靠性。
2.5 多機容災機制
緩存平臺提供應用調用的API,內置容錯機制,智能檢測緩存平臺狀態。當發現平臺不可用時,可以智能跳轉至備用平臺。網絡內可以部署多個平臺,互為主備。一臺主機可以同時支持多臺備機。
正常情況下,中間件A連接緩存平臺A,當緩存平臺A不可用用時,自動連接緩存平臺B…
正常情況下,中間件B連接緩存平臺B,當緩存平臺B不可用用時,自動連接緩存平臺A…
緩存平臺切換為平滑切換,對應用透明。不影響業務受理。
2.6 總述
緩存平臺能夠實現優化現有系統架構,降低數據庫壓力,提升查詢速度。在原有網絡中添加緩存平臺,數據的流向由舊架構中每次都從數據庫進行查詢,修改為新架中每次都從緩存平臺進行查詢,平臺中的數據采用懶加載策略,需要時才從數據庫獲取,并且在數據的生命周期內,僅從數據庫獲取一次數據。
三、業務支撐系統架構存在的問題
當前的IT業務支撐系統自2009年實施上線,一直運行至今。系統架構采用傳統的四層架構:展示層、接入層、業務邏輯層、數據層。傳統的技術架構,隨著用戶數增長,業務發展,其對后端數據庫的壓力也逐漸增大。數據庫性能瓶頸日益明顯。
前端,業務系統受理效率下降,影響客戶體驗;在業務高峰期數據庫CPU使用率又上升到90%。數據庫硬件擴容難度大,存在天花板。
四、緩存平臺技術在業務支撐系統的應用
現有業務支撐系統的技術架構是四層:展示層、接入層、業務邏輯層、數據層,緩存平臺技術是在業務邏輯層與數據層之間,部署緩存平臺及基于平臺研發的通用數據管理產品。
4.1緩存平臺的功能架構
整個系統架構分為三個部分:平臺核心層。在這里規范業務數據的標準存取操作流程、數據的生命周期管理,以及操作流程中的策略管理與配置管理等等。平臺接口層。在這里與現有的BOSS側業務層對接,提供相關的操作接口。BOSS業務層。在這里對現有的BOSS側業務層邏輯進行代碼改造,以便對接緩存平臺。
1、平臺核心層。主要包含12個功能模塊,內容概述如下:
1)內存數據庫適配器:內存數據庫適配器包含兩個功能。對主流內存數據庫(altibase/redis/memcached/…)進行調用接口適配;對不同廠商的小機環境進行適配,目前支持AIX/ hp-ux等。
2)數據生命周期管理:對內存數據庫中的數據進行生命周期管理,支持通過配置來定義不同類型的數據的不同的生命周期。相同數據在生效期內,不再重復從數據源加載,數據失效后,采用懶加載策略從數據源重新加載數據。
3)關系型數據庫數據操作對象。采用oci接口封裝對關系型數據庫的操作對象。包括關系型數據庫中數據的增刪改查等等。
4)內存型數據庫數據操作對象。封裝對內存數據庫的操作對象。包括內存數據庫中數據的增刪改查等等。
5)存儲驅動器。根據配置來自動加載不同的存儲實例,獲取存儲管理器,交給應用做后續的內存操作。
6)存儲管理器。定義了對存儲的各種操作接口及標準的操作流程。
7)元數據查詢。定義了標準的查詢流程并提供相關的API。
8)元數據存儲。定義了標準的存儲流程并提供相關的API。
9)元數據刪除。定義了標準的刪除流程并提供相關的API。
10)懶加載策略管理。實現對數據的懶加載策略,當需要時才加載相關增量數據,而非一次性全量加載。
11)容災策略管理。提供應用調用的API,內置容錯機制,智能檢測緩存平臺狀態。當發現平臺不可用時,可以智能跳轉至備用平臺。網絡內可以部署多個平臺,互為主備。一臺主機可以同時支持多臺備機。
12)通用配置管理。實現對配置的讀取與使用。
2、 平臺接口層。主要包含4個功能模塊,內容概述如下:
1)CParam查詢接口。對系統中上百個KV類型數據進行封裝,定義統一的查詢接口。實現對這些數據的加載、查詢與存儲等操作。
2)通用查詢接口。對所有基于對數據庫的查詢操作進行封裝,使用標準的數據查詢流程,內置關系型數據庫的查詢、內存數據庫的查詢、存儲等操作。
3)Buffer轉換。對Tuxedo的CFml32格式的數據進行封裝,可以快速地對其中KV數據進行編碼名稱轉換。
4)Conv類轉換。Conv類是封裝了一系列c++類,使用這個系列類可以對一些常見的數據進行查詢轉換。
3、BOSS業務改造內容
BOSS業務側所有按傳統方式對關系型數據Oracle進行數據操作的代碼,都采用緩存平臺提供的API進行調用改造。BOSS業務側需改造的大小模塊將近30個,包括但不局限于以下內容:訂單模塊、費用模塊、客戶模塊、用戶模塊、賬戶模塊、資源模塊、帳管模塊、產品模塊、參數模塊、聯指模塊等。
4.2緩存平臺實施后的優化效果
系統運行穩定,效果顯著,有效降低了業務程序對數據庫的訪問。出賬期間,緩存平臺每天緩存命中次數最高可達2億6千多萬次,crm數據庫活動會話數降低近一半,中間件主機內存較實施前降低明顯,12臺業務主機共降低內存達50.2G。
五、結束語
緩存技術很大程度上解決了BOSS系統的瓶頸問題,提高了整體系統的處理性能。實施后BOSS系統有以下四個方面的明顯優化:提升數據庫性能,降低數據庫主機CPU使用率; 降低中間件主機內存損耗;降低中間件主機CPU使用率,提高流程處理性能;降低WEB應用服務器的瞬間CPU性能高峰。
緩存平臺的應用提高了業務受理效率,提升了客戶體驗,降低業務數據CPU使用率,降低主機內存損耗,節省了硬件成本。