王麗娜 孫艷華/山東協和學院計算機學院
基于多線程的分布式數據同步方法研究
王麗娜 孫艷華/山東協和學院計算機學院
在大數據時代,單一數據存儲方式早已不能滿足大數據、云數據的存儲處理,本文提出一種分布式數據的同步方法,具體來說是涉及一種用于分布式環境下的基于多線程的數據同步方法,其特征在于數據能夠在不占用當前服務資源的情況下進行高效傳輸。
多線程;數據同步;分布式
在分布式系統架構中,當用戶界面需要操作或展示具體的業務數據信息時只需要到相應的分布式終端進行查詢,為網絡傳輸減輕負擔的同時提高總體系統效率。在某個終端數據更新之后,為保證數據的一致性,差異數據要同步到其它各個終端服務器。分布式數據存儲主要需解決的就是各終端系統服務器之間的數據一致性問題,根據時間特征性數據同步可分為實時數據同步和間歇性數據同步。分布式數據同步方法中數據傳輸安全性和數據同步效率是驗證方案可行性的兩大因素,為降低數據傳輸過程中的風險和提高數據傳輸效率,發明一種高效且安全的分布式數據同步方法是有必要的。
現今的分布式數據存儲大多依靠產品或者服務本身對分布式環境下數據庫服務器的數據進行同步,在互聯網應用中比較通用的數據傳輸方式為基于WebService的數據同步機制。WebService實現數據同步原理如圖1所示, SOAP消息文本數據攜帶較多的格式數據,且此種方式必須依托某項特定的服務或者產品,無論是在傳輸過程中還是在終端接受處理數據都會增加系統資源開銷,影響傳輸效率的同時風險也隨之增大。

圖1 分布式統數據同步原理
在當前技術領域下怎樣使數據同步更加自動化、提高數據傳輸安全性及效率是數據同步方案的度量標準。為解決以上所述問題,本發明提出多線程同步機制運用在分布式數據同步方案中,安全性和效率性同時得到保證。
利用多線程同步機制使各分布式終端服務器之間的單個同步任務能夠獨立運行。在基于多線程分布式數據同步方法架構中,包括四個模塊:差異數據捕獲、觸發創建同步線程、差異數據處理、數據持久化。
差異數據捕獲,捕獲處理在終端分支服務器端對業務數據操作產生的差異數據。在本發明方法的用戶分析模塊設有監聽器與觸發器,用于監聽用戶的請求行為,終端用戶發出修改請求時被監聽到,此時觸發程序將會觸發線程工廠(線程管理)進行數據同步線程的創建工作。與此將對用戶的請求進行行為分析,初步得出在當前分布式終端所產生的同步數據包。

圖2 基于多線程分布式數據同步方法處理模塊
在捕獲差異數據模塊監聽到用戶請求時,主服務會觸發線程工廠創建同步線程。在線程工廠創建線程之前由線程計數器判斷當前服務器同步線程數,當線程數達到最大限額時會拒絕創建線程并提示當前任務繁忙請稍等。若線程數沒有到達最大限額,根據線程數成階梯狀進行判斷,如圖2所示,線程數與等待時間的階梯關系清晰可見。線程工廠在創建線程時會根據當前業務流程的需要創建符合該業務的同步線程,并根據主服務所傳的數據類型將數據分配給對應的業務同步線程。
差異數據包裝和整理,對所捕獲的差異數據進行處理,產生格式化差異數據表或者能夠直接運行的SQL語句。在本發明方法的差異數據處理模塊完成對同步數據包的處理,當前運行的主服務響應用戶請求,同時所產生的差異數據會存儲在臨時數據集中。業務同步線程對數據集中的數據逐條分析并將其轉化為對應可執行的SQL語句,為保證數據在后續的傳輸過程中不出現丟失將處理后的數據包持久化到本地磁盤存儲。在本地磁盤文件中存儲了所需同步終端的數據庫配置信息以及整理后的同步數據SQL。
當同步業務線程本地持久化數據之后就會脫離當前主服務的控制,單獨運行,隨后讀取持久化到磁盤中的文件數據,根據所存儲的各終端數據庫信息以直連的方式連接到各終端數據庫。數據傳輸過程中若出現異常,業務同步線程會延遲一段時間重新啟動,待到數據全部傳輸完畢,并且沒有出現異常時,業務同步線程會自動銷毀本地磁盤數據,然后完成數據同步工作。
本文提出的基于多線程分布式數據同步方法是針對由于網絡、地域或數據量龐大等因素致使系統分布式部署的保持數據一致解決方法。其中任一分布式終端都可以作為發起數據同步請求的主服務.
在用戶發起請求之前每個分布式終端的本地磁盤都要具有各終端服務系統的數據庫配置信息,任一終端用戶發起增加、修改或刪除請求時,主服務負責響應,在主服務線程開啟時系統會分配其一個臨時數據集,所述臨時數據集是存儲用戶一次操作請求所產生的異動數據。監聽與觸發程序負責將分析模塊與線程管理模塊關聯,用戶操作觸發創建業務同步線程。
為保證業務同步線程在傳輸數據過程中數據完整性不丟失,將臨時數據集中的數據本地磁盤存儲,業務同步線程會將數據集中的數據進行逐條分析,轉化為對應的可執行SQL語句并持久化到當前服務器磁盤中。若此時其它分布式終端還有數據同步請求,在當前業務同步線程沒有脫離主服務控制之前,其它數據同步請求需要排隊等待。在業務同步線程持久化數據完畢后將脫離服務控制,隨后獨立運行讀取持久化到磁盤中的各終端數據庫服務器配置信息。
在當今大數據時代,數據的處理方式至關重要,數據的分布式處理方式是大數據處理的主要方式,分布式環境下數據的同步問題是當前研究的主要問題,基于多線程的分布式數據同步方法是在前人的基礎上提出一種方式,還有待進一步研究。
[1]朱建華.分布式數據同步采集系統的設計與實現[D].安徽大學,2014.
[2]董立巖,毛銳,余誼誠,王利民,黃樂,殷涵.基于分布式多服務系統的數據同步方法[J].吉林大學學報,2011(4).
[3]盧宇,龔忠友,吳進營,蘇偉達,朱麗,吳允平,蔡聲鎮.基于WEB服務的分布式異構數據同步設計[J].微計算機應用.2011(12).