王麗娜+++孫艷華
【摘 要】在大數(shù)據(jù)時代,單一數(shù)據(jù)存儲方式早已不能滿足大數(shù)據(jù)、云數(shù)據(jù)的存儲處理,本文提出一種分布式數(shù)據(jù)的同步方法,具體來說是涉及一種用于分布式環(huán)境下的基于多線程的數(shù)據(jù)同步方法,其特征在于數(shù)據(jù)能夠在不占用當前服務資源的情況下進行高效傳輸。
【關鍵詞】多線程;數(shù)據(jù)同步;分布式
在分布式系統(tǒng)架構中,當用戶界面需要操作或展示具體的業(yè)務數(shù)據(jù)信息時只需要到相應的分布式終端進行查詢,為網(wǎng)絡傳輸減輕負擔的同時提高總體系統(tǒng)效率。在某個終端數(shù)據(jù)更新之后,為保證數(shù)據(jù)的一致性,差異數(shù)據(jù)要同步到其它各個終端服務器。分布式數(shù)據(jù)存儲主要需解決的就是各終端系統(tǒng)服務器之間的數(shù)據(jù)一致性問題,根據(jù)時間特征性數(shù)據(jù)同步可分為實時數(shù)據(jù)同步和間歇性數(shù)據(jù)同步。分布式數(shù)據(jù)同步方法中數(shù)據(jù)傳輸安全性和數(shù)據(jù)同步效率是驗證方案可行性的兩大因素,為降低數(shù)據(jù)傳輸過程中的風險和提高數(shù)據(jù)傳輸效率,發(fā)明一種高效且安全的分布式數(shù)據(jù)同步方法是有必要的。
1.數(shù)據(jù)分布式原理
現(xiàn)今的分布式數(shù)據(jù)存儲大多依靠產(chǎn)品或者服務本身對分布式環(huán)境下數(shù)據(jù)庫服務器的數(shù)據(jù)進行同步,在互聯(lián)網(wǎng)應用中比較通用的數(shù)據(jù)傳輸方式為基于WebService的數(shù)據(jù)同步機制。WebService實現(xiàn)數(shù)據(jù)同步原理如圖1所示, SOAP消息文本數(shù)據(jù)攜帶較多的格式數(shù)據(jù),且此種方式必須依托某項特定的服務或者產(chǎn)品,無論是在傳輸過程中還是在終端接受處理數(shù)據(jù)都會增加系統(tǒng)資源開銷,影響傳輸效率的同時風險也隨之增大。
在當前技術領域下怎樣使數(shù)據(jù)同步更加自動化、提高數(shù)據(jù)傳輸安全性及效率是數(shù)據(jù)同步方案的度量標準。為解決以上所述問題,本發(fā)明提出多線程同步機制運用在分布式數(shù)據(jù)同步方案中,安全性和效率性同時得到保證。
2.基于多線程分布式數(shù)據(jù)同步方法架構
利用多線程同步機制使各分布式終端服務器之間的單個同步任務能夠獨立運行。在基于多線程分布式數(shù)據(jù)同步方法架構中,包括四個模塊:差異數(shù)據(jù)捕獲、觸發(fā)創(chuàng)建同步線程、差異數(shù)據(jù)處理、數(shù)據(jù)持久化。
差異數(shù)據(jù)捕獲,捕獲處理在終端分支服務器端對業(yè)務數(shù)據(jù)操作產(chǎn)生的差異數(shù)據(jù)。在本發(fā)明方法的用戶分析模塊設有監(jiān)聽器與觸發(fā)器,用于監(jiān)聽用戶的請求行為,終端用戶發(fā)出修改請求時被監(jiān)聽到,此時觸發(fā)程序將會觸發(fā)線程工廠(線程管理)進行數(shù)據(jù)同步線程的創(chuàng)建工作。與此將對用戶的請求進行行為分析,初步得出在當前分布式終端所產(chǎn)生的同步數(shù)據(jù)包。
在捕獲差異數(shù)據(jù)模塊監(jiān)聽到用戶請求時,主服務會觸發(fā)線程工廠創(chuàng)建同步線程。在線程工廠創(chuàng)建線程之前由線程計數(shù)器判斷當前服務器同步線程數(shù),當線程數(shù)達到最大限額時會拒絕創(chuàng)建線程并提示當前任務繁忙請稍等。若線程數(shù)沒有到達最大限額,根據(jù)線程數(shù)成階梯狀進行判斷,如圖2所示,線程數(shù)與等待時間的階梯關系清晰可見。線程工廠在創(chuàng)建線程時會根據(jù)當前業(yè)務流程的需要創(chuàng)建符合該業(yè)務的同步線程,并根據(jù)主服務所傳的數(shù)據(jù)類型將數(shù)據(jù)分配給對應的業(yè)務同步線程。
差異數(shù)據(jù)包裝和整理,對所捕獲的差異數(shù)據(jù)進行處理,產(chǎn)生格式化差異數(shù)據(jù)表或者能夠直接運行的SQL語句。在本發(fā)明方法的差異數(shù)據(jù)處理模塊完成對同步數(shù)據(jù)包的處理,當前運行的主服務響應用戶請求,同時所產(chǎn)生的差異數(shù)據(jù)會存儲在臨時數(shù)據(jù)集中。業(yè)務同步線程對數(shù)據(jù)集中的數(shù)據(jù)逐條分析并將其轉化為對應可執(zhí)行的SQL語句,為保證數(shù)據(jù)在后續(xù)的傳輸過程中不出現(xiàn)丟失將處理后的數(shù)據(jù)包持久化到本地磁盤存儲。在本地磁盤文件中存儲了所需同步終端的數(shù)據(jù)庫配置信息以及整理后的同步數(shù)據(jù)SQL。
當同步業(yè)務線程本地持久化數(shù)據(jù)之后就會脫離當前主服務的控制,單獨運行,隨后讀取持久化到磁盤中的文件數(shù)據(jù),根據(jù)所存儲的各終端數(shù)據(jù)庫信息以直連的方式連接到各終端數(shù)據(jù)庫。數(shù)據(jù)傳輸過程中若出現(xiàn)異常,業(yè)務同步線程會延遲一段時間重新啟動,待到數(shù)據(jù)全部傳輸完畢,并且沒有出現(xiàn)異常時,業(yè)務同步線程會自動銷毀本地磁盤數(shù)據(jù),然后完成數(shù)據(jù)同步工作。
3.基于多線程分布式數(shù)據(jù)同步方法架構實施
本文提出的基于多線程分布式數(shù)據(jù)同步方法是針對由于網(wǎng)絡、地域或數(shù)據(jù)量龐大等因素致使系統(tǒng)分布式部署的保持數(shù)據(jù)一致解決方法。其中任一分布式終端都可以作為發(fā)起數(shù)據(jù)同步請求的主服務.
在用戶發(fā)起請求之前每個分布式終端的本地磁盤都要具有各終端服務系統(tǒng)的數(shù)據(jù)庫配置信息,任一終端用戶發(fā)起增加、修改或刪除請求時,主服務負責響應,在主服務線程開啟時系統(tǒng)會分配其一個臨時數(shù)據(jù)集,所述臨時數(shù)據(jù)集是存儲用戶一次操作請求所產(chǎn)生的異動數(shù)據(jù)。監(jiān)聽與觸發(fā)程序負責將分析模塊與線程管理模塊關聯(lián),用戶操作觸發(fā)創(chuàng)建業(yè)務同步線程。
為保證業(yè)務同步線程在傳輸數(shù)據(jù)過程中數(shù)據(jù)完整性不丟失,將臨時數(shù)據(jù)集中的數(shù)據(jù)本地磁盤存儲,業(yè)務同步線程會將數(shù)據(jù)集中的數(shù)據(jù)進行逐條分析,轉化為對應的可執(zhí)行SQL語句并持久化到當前服務器磁盤中。若此時其它分布式終端還有數(shù)據(jù)同步請求,在當前業(yè)務同步線程沒有脫離主服務控制之前,其它數(shù)據(jù)同步請求需要排隊等待。在業(yè)務同步線程持久化數(shù)據(jù)完畢后將脫離服務控制,隨后獨立運行讀取持久化到磁盤中的各終端數(shù)據(jù)庫服務器配置信息。
4.結論
在當今大數(shù)據(jù)時代,數(shù)據(jù)的處理方式至關重要,數(shù)據(jù)的分布式處理方式是大數(shù)據(jù)處理的主要方式,分布式環(huán)境下數(shù)據(jù)的同步問題是當前研究的主要問題,基于多線程的分布式數(shù)據(jù)同步方法是在前人的基礎上提出一種方式,還有待進一步研究。
參考文獻:
[1]朱建華.分布式數(shù)據(jù)同步采集系統(tǒng)的設計與實現(xiàn)[D].安徽大學,2014.
[2]董立巖,毛銳,余誼誠,王利民,黃樂,殷涵.基于分布式多服務系統(tǒng)的數(shù)據(jù)同步方法[J].吉林大學學報,2011(4).
[3]盧宇,龔忠友,吳進營,蘇偉達,朱麗,吳允平,蔡聲鎮(zhèn).基于WEB服務的分布式異構數(shù)據(jù)同步設計[J].微計算機應用.2011(12).