分佈式站點數據同步機制的設計與實現[出自別處]

摘要:在互聯網蓬勃發展的今天,把集團公司下的各個水電站的數據同步起來,統一管理的需求日益突顯。本公司首先採用了oracle公司自身提供的解決方案高級複製技術,但限於本國網速緩慢網絡時常斷線的不穩定的狀態的特殊國情,實施效果不盡如人意。針對我國苛刻的網絡條件,本公司努力研發,自主地設計了一套低網速數據同步系統比較穩當地解決了數據同步的相關問題,取得了較好的經濟效益與社會效益。java

正文: 水電的集團公司爲了提升公司的信息化水平,爲了可以及時得到準確的施工與生產的相關信息,爲公司的科學決策提供依據,決定統一管理集團旗下的各個水電站的數據。具體任務則交給了本公司來具體實施。實施的結果獲得了業主和最終用戶的承認,並認爲該技術與經驗值得普及與推廣。
  下面針對低網速數據同步系統的開發,簡要介紹一下;
一問題分析。
在與業主充分地溝通,調研了業主的實際業務需求以後,結合目前的網絡現狀,通過了與業主的屢次的討論與確認,雙方一致確認一天同步一次爲妥。確保公司總部可以瞭解到前一天各電站的施工或者是生產現狀。須要解決的主要的技術問題有以下幾個:
1。如實地,一絲不苟地記錄每一個電站的一天內數據的增長,修改,刪除等改變的信息。
2。各電站的數據都是由兩部分組成的。包括系統數據和業務數據。系統數據是各個電站共同使用的數據,業務數據是由各個電站單獨使用。須要解決的是各個電站同一天內修改了相同的系統數據的衝突問題。
3。如何把大量的日誌信息,精確無誤地從各個電站站點傳輸到公司總部的中心站點,由於網速很慢及網絡不穩定的現狀,這一問題成爲系統成敗的關鍵所在。
4。在同步執行進,遇到了沒法解決的衝突時,如何處理,如何提示系統的實施人員來處理問題。程序員

二系統設計算法

針對上述問題,低網速數據同步系統能夠劃分爲相互關聯,又彼此比較獨立的五個子系統。它們是日誌記錄子系統,衝突解決的配置子系統,日誌上傳子系統,同步執行子系統,同步調度子系統。下面逐一介紹各個子系統。數據庫

1。日誌記錄子系統網絡

在業務系統運行時,由該子系統自動地記錄數據庫的數據的改變的日誌信息。在一天結束時,與數據庫自身的日誌記錄進行對比,驗證。若是驗證經過,則接下來的任務,由上傳子系統來完成。若是沒有經過驗證,則經過數據庫現有的狀態與昨天的此時的數據庫的快照狀態進行計算糾錯。oracle

2。衝突解決的配置子系統測試

該子系統會產生數據量很大的,十分詳盡的配置項,結果以XML格式的文件的形式保存在中心站點供同步執行子系統查詢和應用。.net

3。日誌上傳的子系統。
在日誌上傳前先壓縮,上傳後解壓縮,採用FTP協議上傳並配置上斷點續傳的功能,解壓縮後,進行MD5的計算與驗證保證文件上傳先後的文件完整性與一致性。該文件供同步執行子系統使用。設計

4。同步執行子系統。日誌

該子系統在中心站點重現各電站子站點一天以來的各類數據庫的操做。有了衝突,則讀取配置文件中的配置項,按照預選配置好的衝突解決策略,進行處理衝突,如以某個站點的數據爲準。以最新的操做時間的爲準,以令牌環的方式哪一個電站持有鎖則以哪一個電站的數據修改成有效。對於衝突的解決狀況及未能找到適合的配置項而不能處理的狀況,一概記錄下來,以郵件的形式發給系統的實施人員進行分析及後續的處理。

5。同步調度的子系統。

由該子系統來整體控制同步的進程。

三系統實現

公司對該系統的開發十分重視,從各個部門抽調了技術骨幹力量組成了項目開發小組,其中項目經理一人,系統分析師二人,系統構架師一人,程序員十人,測試員三人,實施員二人,文員一人。

該系統歷時半年的開發上線。試運行了三個月,解決了一些技術問題後,經過了初驗,又穩定地運行了半年後,系統經過了終審驗收。

該系統的實現涉及的技術複雜並且普遍,如JAVA程序設計技術,oracle數據庫的管理技術,FTP協議等網絡技術,壓縮與解壓縮等數學算法技術等,在公司領導的親切關懷與正確領導下,在項目組全體成員的共同努力下,在相關部門的密切地協做與配合下,在業主的大力支持下,最終取得了使人比較滿意的成果。

做者:gggwfn1982
來源:CSDN
原文:https://blog.csdn.net/gggwfn1982/article/details/81675509

相關文章
相關標籤/搜索