吳宇星
摘 要 隨著企業IT系統架構進入“互聯網+”時代,企業應用軟件也越來越多地采用分布式數據庫進行數據存儲。企業數據的共享是IT系統中重要的一個環節,如何實現數據分布式存儲架構的數據共享就成為一個重要的課題了,特別是大批量的數據共享就顯得尤為重要,本文就數據分布式存儲后基于數據同步方案的數據共享技術進行方案設計。
關鍵詞 分布式數據庫;數據共享;數據分發;分布式緩存
前言
在分布式系統架構中,數據分布式存儲,提升了數據庫的水平擴展能力,但是受限分布式數據庫的特性,分布式數據庫數據分散存儲,缺乏傳統Oracle數據庫的DBLink鏈路數據共享機制、也難以像傳統的集中數據一樣進行復雜的關聯,給數據共享帶來了不少的困難。
1 需求及思路
分布式系統架構中,從web、服務到數據存儲按照分布式系統架構設計方法,各層實現分布式能力。其中,數據分布式存儲是整個架構的基礎。數據分布式存儲:按照高內聚的原則,對數據按照時間、功能、ID等維度進行垂直和水平切分,分片存儲。
在分布式數據存儲中,數據分散存儲,為支持業務實現,需要考慮數據的快速發布,主要的數據分發場景:①配置類數據同步給周邊系統,②全局配置類數據更新發布到分布式緩存。
借鑒互聯網架構經驗,數據的共享主要有兩種方式:一是數據服務化,二是數據同步冗余方式,對于大批量的數據共享通常為提升應用性能,部分全局的數據在分布式數據節點中都保存,但是一旦數據庫的數據發生變化,通知每個分布的服務更新內存數據,修改后需要同步給其他所有的數據庫節點。
2 總體方案
數據同步主要包括獲取變化數據和數據發布兩個環節:
(1)獲取變化數據,需要能夠通過數據變化事件等方式獲取變化的數據,常用方案:
①通過時間戳+版本號識別;②通過應用同步寫入數據變化事件記錄;③通過數據庫日志生成數據變更事件。
(2)數據發布,將識別的數據同步到目標數據庫或緩存,要求數據的完整性要求高,同步速度快。
3 詳細實現方案
3.1 獲取變化數據
(1)觸發器方式
通過建立緩存更新事件表,使用觸發器,記錄變更處理事件信息;使用應用程序,輪詢緩存更新事件表信息,將變更信息修改到具體的緩存中;
①事件生成機制。對數據表設置觸發器,當數據發生變化時候,將變更事件記錄到更新事件表。②更新機制。開發一個工具,建立一套配置表(該配置表的信息通過單獨功能直接更新):支持設置更新的緩存類型、存儲IP、位置等信息,輪詢緩存更新事件表,根據配置信息進行同步目標數據庫或緩存。
優點:對于事件生成無須區分應用界面及數據腳本,統一生成。
缺點:需要數據庫加觸發器,數據庫很多,維護管理復雜。
(2)消息隊列方式
通過應用程序生成數據變更事件放入消息隊列,通過消息隊列通知相關應用更新緩存。
①事件生成機制。開發工具,提供配置表,配置哪些表變更需要觸發信息。應用程序變更數據時候生成事件機制,放入消息隊列。數據庫腳本變更配置:建立變更事件表,數據腳本根據規則,生成變更事件數據,由程序再根據變更內容及上述的配置信息,生成事件到消息隊列表數據。②更新機制。開發一個工具,建立一套配置表(該配置表的信息通過單獨功能直接更新):支持設置更新的緩存類型、存儲IP、位置等信息,根據從消息隊列接收到的事件,根據配置信息進行同步目標數據庫或緩存。
優點:相對穩定點;
缺點:不在數據庫統一實現,數據修改、割接需要關注,更新事件表數據的插入。
(3)時間戳方式
需要同步的數據庫表增加時間戳字段,數據更新時,同時更新時間戳,通過比較緩存中的數據與數據庫記錄的時間戳判斷是否更新數據。
①事件生成機制。數據庫中需要緩存的表,增加時間戳字段,更新數據時,同時更新時間戳。②更新機制。定時跟進數據庫中數據的時間戳,將數據發布到目標數據庫或緩存。
優點:①設計簡單,實現快捷;②不依賴第三方組件,觸發器,由應用直接實現。
缺點:需要定時輪詢緩存中的全部數據,數據庫開銷大。
3.2 數據發布方案
識別出待同步數據后,通過JGroups機制將數據同步到周邊系統或分布式緩存應用。JGroups是一個可靠的群組通訊Java工具包,組成員可以分布在局域網或廣域網中,具有非常靈活的協議棧配置,可輕易配置使用的網絡協議。
數據分發模塊采用線程池的概念,每個JGroups成員配置線程池,每個線程負責更新一個目標對象(如:數據庫、分布式緩存)。通過這種方式降低JGroups集群之間的成員數量,加快通信速度。
數據發布網絡模式:
3.3 配套管理及監控功能
為了實現穩定可靠的數據共享,需要建立完善的配套管理工具,主要包括:
(1)實現在線配置同步參數:在數據同步過程中,用戶可以隨時增加或減少需要同步的數據源及同步參數;
(2)建立同步性能查詢功能: 數據同步提供同步延遲、同步性能(記錄數、吞吐量)趨勢圖,用戶可以方便查看同步通道的性能趨勢。
(3)建立完善監控功能: 數據同步提供同步作業狀態、同步延遲的報警監控功能,用戶可以根據業務敏感度,自定義同步延遲報警閾值。
4 結束語
本文初步設想分布式數據庫系統數據發布技術方案,目前該實現方案已經在項目中初步應用,需在后續的實施過程中進一步的提升完善。