一種分布式數(shù)據(jù)同步系統(tǒng)及方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)庫(kù)應(yīng)用技術(shù)領(lǐng)域,特別涉及一種分布式數(shù)據(jù)同步系統(tǒng)及方法。
【背景技術(shù)】
[0002]大型企業(yè)的不同分支機(jī)構(gòu)分布在不同的地區(qū),而現(xiàn)代企業(yè)都要求信息化統(tǒng)一管理?;诖艘螅壳巴ǔS袃煞N實(shí)現(xiàn)方案。一為單數(shù)據(jù)庫(kù)方式,即總公司和分支機(jī)構(gòu)都使用同一數(shù)據(jù)庫(kù);二為多數(shù)據(jù)庫(kù)方式,即每個(gè)分支機(jī)構(gòu)都使用自己獨(dú)立的數(shù)據(jù)庫(kù),再將分支機(jī)構(gòu)數(shù)據(jù)庫(kù)里的數(shù)據(jù)與總公司數(shù)據(jù)庫(kù)里的數(shù)據(jù)同步。
[0003]其中,單數(shù)據(jù)庫(kù)方式的優(yōu)點(diǎn)是數(shù)據(jù)及時(shí),但缺點(diǎn)是一旦公網(wǎng)出現(xiàn)問(wèn)題,將導(dǎo)致系統(tǒng)無(wú)法正常使用,并且所有的性能壓力全部集中在總公司方。多數(shù)據(jù)庫(kù)方式的優(yōu)點(diǎn)是不受公網(wǎng)情況影響,并且性能壓力分散在各個(gè)分支機(jī)構(gòu),缺點(diǎn)是總公司不能實(shí)時(shí)了解分支機(jī)構(gòu)的數(shù)據(jù),并且總公司與分支機(jī)構(gòu)的數(shù)據(jù)在公網(wǎng)同步面臨數(shù)據(jù)泄漏風(fēng)險(xiǎn)。
【發(fā)明內(nèi)容】
[0004]本發(fā)明解決的問(wèn)題在于提供一種分布式數(shù)據(jù)同步系統(tǒng)及方法,數(shù)據(jù)更新及時(shí),且實(shí)現(xiàn)了壓力均衡,降低了對(duì)服務(wù)器的要求,減少了對(duì)服務(wù)器的成本投入,同時(shí),數(shù)據(jù)傳輸量小,節(jié)約通信流量,減輕通信負(fù)擔(dān)。
[0005]為解決上述技術(shù)問(wèn)題,本發(fā)明的實(shí)施方式提供了一種分布式數(shù)據(jù)同步方法,應(yīng)用于分布式數(shù)據(jù)同步系統(tǒng),所述分布式數(shù)據(jù)同步系統(tǒng)包含服務(wù)器總站與若干服務(wù)器子站;所有所述服務(wù)器子站分別與所述服務(wù)器總站通信連接;所述服務(wù)器總站為數(shù)據(jù)發(fā)送端,所述服務(wù)器子站為數(shù)據(jù)接收端;或者,所述服務(wù)器總站為數(shù)據(jù)接收端,所述服務(wù)器子站為數(shù)據(jù)發(fā)送端;
[0006]所述分布式數(shù)據(jù)同步方法包含以下步驟:
[0007]數(shù)據(jù)發(fā)送端實(shí)時(shí)檢測(cè)待同步的數(shù)據(jù)的狀態(tài),并僅將數(shù)據(jù)更新日志按照預(yù)設(shè)的數(shù)據(jù)格式發(fā)送至數(shù)據(jù)接收端;其中,所述待同步的數(shù)據(jù)包含若干數(shù)據(jù)項(xiàng);所述數(shù)據(jù)更新日志中包含數(shù)據(jù)發(fā)送端中狀態(tài)更新的數(shù)據(jù)項(xiàng);
[0008]所述數(shù)據(jù)接收端實(shí)時(shí)地接收來(lái)自所述數(shù)據(jù)發(fā)送端的數(shù)據(jù),并將所述數(shù)據(jù)更新日志中的數(shù)據(jù)項(xiàng)賦值給數(shù)據(jù)接收端中相應(yīng)的數(shù)據(jù)項(xiàng),使數(shù)據(jù)接收端與數(shù)據(jù)發(fā)送端數(shù)據(jù)一致;其中,所述數(shù)據(jù)接收端的數(shù)據(jù)項(xiàng)與所述數(shù)據(jù)發(fā)送端的數(shù)據(jù)項(xiàng)一一對(duì)應(yīng)。
[0009]本發(fā)明的實(shí)施方式還提供了一種分布式數(shù)據(jù)同步系統(tǒng),所述分布式數(shù)據(jù)同步系統(tǒng)包含服務(wù)器總站與若干服務(wù)器子站;所有所述服務(wù)器子站分別與所述服務(wù)器總站通信連接;所述服務(wù)器總站為數(shù)據(jù)發(fā)送端,所述服務(wù)器子站為數(shù)據(jù)接收端;或者,所述服務(wù)器總站為數(shù)據(jù)接收端,所述服務(wù)器子站為數(shù)據(jù)發(fā)送端;
[0010]所述數(shù)據(jù)發(fā)送端,用于實(shí)時(shí)檢測(cè)待同步的數(shù)據(jù)的狀態(tài),并僅將數(shù)據(jù)更新日志按照預(yù)設(shè)的數(shù)據(jù)格式發(fā)送至數(shù)據(jù)接收端;其中,所述待同步的數(shù)據(jù)包含若干數(shù)據(jù)項(xiàng);所述數(shù)據(jù)更新日志中包含數(shù)據(jù)發(fā)送端中狀態(tài)更新的數(shù)據(jù)項(xiàng);[0011 ]所述數(shù)據(jù)接收端,用于實(shí)時(shí)地接收來(lái)自所述數(shù)據(jù)發(fā)送端的數(shù)據(jù),并將所述數(shù)據(jù)更新日志中的數(shù)據(jù)項(xiàng)賦值給數(shù)據(jù)接收端中相應(yīng)的數(shù)據(jù)項(xiàng),使數(shù)據(jù)接收端與數(shù)據(jù)發(fā)送端數(shù)據(jù)一致;其中,所述數(shù)據(jù)接收端的數(shù)據(jù)項(xiàng)與所述數(shù)據(jù)發(fā)送端的數(shù)據(jù)項(xiàng)一一對(duì)應(yīng)。
[0012]本發(fā)明實(shí)施方式相對(duì)于現(xiàn)有技術(shù)而言,由于服務(wù)器總站可以實(shí)時(shí)地向服務(wù)器子站發(fā)送數(shù)據(jù),服務(wù)器子站也可以實(shí)時(shí)地向服務(wù)器總站發(fā)送數(shù)據(jù),這樣,無(wú)論服務(wù)器總站還是服務(wù)器子站數(shù)據(jù)更新都很及時(shí),而且,由于服務(wù)器總站與各個(gè)服務(wù)器子站之間只將狀態(tài)更新的數(shù)據(jù)項(xiàng)發(fā)送至對(duì)方,即服務(wù)器總站與各個(gè)服務(wù)器子站之間只交互狀態(tài)更新的數(shù)據(jù),所以,即使服務(wù)器總站與各個(gè)服務(wù)器子站之間出現(xiàn)通信中斷,服務(wù)器總站與各個(gè)服務(wù)器子站將各自分?jǐn)傄徊糠謮毫?,?shí)現(xiàn)了壓力均衡,降低了對(duì)服務(wù)器的要求,減少了對(duì)服務(wù)器的成本投入;同時(shí),由于服務(wù)器總站與各個(gè)服務(wù)器子站之間只交互狀態(tài)更新的數(shù)據(jù),數(shù)據(jù)傳輸量小,可以節(jié)約通信流量、減輕通信負(fù)擔(dān)。
[0013]進(jìn)一步地,在所述數(shù)據(jù)發(fā)送端將所述數(shù)據(jù)更新日志按照預(yù)設(shè)的數(shù)據(jù)格式發(fā)送至數(shù)據(jù)接收端的步驟中,所述數(shù)據(jù)發(fā)送端將所有狀態(tài)更新的數(shù)據(jù)更新日志按照預(yù)先配置的數(shù)據(jù)格式逐一發(fā)送至所述數(shù)據(jù)接收端。通過(guò)分包單獨(dú)傳輸,降低了服務(wù)器子站對(duì)通信的速度和穩(wěn)定性要求,減少了對(duì)通信的成本投入。
[0014]進(jìn)一步地,在所述數(shù)據(jù)發(fā)送端將所有數(shù)據(jù)更新日志按照預(yù)先配置的數(shù)據(jù)格式逐一發(fā)送至所述數(shù)據(jù)接收端的步驟中,所述數(shù)據(jù)發(fā)送端將所有數(shù)據(jù)更新日志分別進(jìn)行加密后發(fā)送至所述數(shù)據(jù)接收端;在所述數(shù)據(jù)接收端實(shí)時(shí)地接收來(lái)自所述數(shù)據(jù)發(fā)送端的數(shù)據(jù),并將所述數(shù)據(jù)更新日志中的數(shù)據(jù)項(xiàng)賦值給數(shù)據(jù)接收端中相應(yīng)的數(shù)據(jù)項(xiàng)的步驟中,包含以下子步驟:所述數(shù)據(jù)接收端對(duì)接收的數(shù)據(jù)包進(jìn)行解密,得到所述數(shù)據(jù)更新日志;所述數(shù)據(jù)接收端讀取解密后的所述數(shù)據(jù)更新日志;所述數(shù)據(jù)接收端執(zhí)行所述數(shù)據(jù)更新日志,使所述數(shù)據(jù)接收端與所述數(shù)據(jù)發(fā)送端中相應(yīng)的數(shù)據(jù)項(xiàng)一致。通過(guò)對(duì)發(fā)送的數(shù)據(jù)進(jìn)行加密,可以確保發(fā)送的數(shù)據(jù)通過(guò)公網(wǎng)的傳輸安全性,因此節(jié)省了搭建VPN(虛擬專用網(wǎng)絡(luò))所需設(shè)備的成本投入。
[0015]進(jìn)一步地,所述數(shù)據(jù)發(fā)送端將所有數(shù)據(jù)更新日志按照預(yù)先配置的數(shù)據(jù)格式逐一發(fā)送至所述數(shù)據(jù)接收端的步驟中,還包含以下步驟:將加密后的數(shù)據(jù)更新日志壓縮成數(shù)據(jù)包,并發(fā)送至所述數(shù)據(jù)接收端;在所述數(shù)據(jù)接收端對(duì)接收的數(shù)據(jù)包進(jìn)行解密的步驟之前,包含以下步驟:所述數(shù)據(jù)接收端對(duì)接收的數(shù)據(jù)包進(jìn)行解壓縮。對(duì)發(fā)送的數(shù)據(jù)進(jìn)行壓縮后再進(jìn)行傳輸,可以降低傳輸?shù)呢?fù)擔(dān),降低服務(wù)器子站對(duì)通信的速度和穩(wěn)定性要求。
[0016]進(jìn)一步地,在所述數(shù)據(jù)接收端實(shí)時(shí)地接收來(lái)自所述數(shù)據(jù)發(fā)送端的數(shù)據(jù)的步驟中,包含以下步驟:記錄接收的數(shù)據(jù)包信息;其中,所述數(shù)據(jù)包信息包含接收端的數(shù)據(jù)請(qǐng)求標(biāo)識(shí)ID、數(shù)據(jù)包數(shù)量、已接收的數(shù)據(jù)包序號(hào);如果在所述數(shù)據(jù)接收端接收來(lái)自所述數(shù)據(jù)發(fā)送端的數(shù)據(jù)時(shí)發(fā)生數(shù)據(jù)傳輸中斷的情況,則所述數(shù)據(jù)接收端保存已接收的數(shù)據(jù),并在恢復(fù)數(shù)據(jù)傳輸后根據(jù)記錄的數(shù)據(jù)包信息繼續(xù)接收未接收的數(shù)據(jù)。在接收數(shù)據(jù)時(shí),實(shí)時(shí)保存接收的數(shù)據(jù),并記錄接收的數(shù)據(jù)包信息,以避免發(fā)生數(shù)據(jù)傳輸中斷,并在恢復(fù)數(shù)據(jù)傳輸后根據(jù)記錄的數(shù)據(jù)包信息繼續(xù)接收未接收的數(shù)據(jù),即實(shí)現(xiàn)了斷點(diǎn)續(xù)傳功能,這樣,可以避免數(shù)據(jù)漏傳數(shù)據(jù)以及數(shù)據(jù)重復(fù)傳輸。
【附圖說(shuō)明】
[0017]圖1是根據(jù)本發(fā)明第一實(shí)施方式中的分布式數(shù)據(jù)同步系統(tǒng)結(jié)構(gòu)框圖;
[0018]圖2是根據(jù)本發(fā)明第一實(shí)施方式的分布式數(shù)據(jù)同步方法流程圖;
[0019]圖3是根據(jù)本發(fā)明第二實(shí)施方式的分布式數(shù)據(jù)同步方法流程圖。
【具體實(shí)施方式】
[0020]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明的各實(shí)施方式進(jìn)行詳細(xì)的闡述。然而,本領(lǐng)域的普通技術(shù)人員可以理解,在本發(fā)明各實(shí)施方式中,為了使讀者更好地理解本申請(qǐng)而提出了許多技術(shù)細(xì)節(jié)。但是,即使沒(méi)有這些技術(shù)細(xì)節(jié)和基于以下各實(shí)施方式的種種變化和修改,也可以實(shí)現(xiàn)本申請(qǐng)各權(quán)利要求所要求保護(hù)的技術(shù)方案。
[0021]本發(fā)明的第一實(shí)施方式涉及一種分布式數(shù)據(jù)同步方法,應(yīng)用于分布式數(shù)據(jù)同步系統(tǒng)。在本實(shí)施方式中,分布式數(shù)據(jù)同步系統(tǒng),具體如圖1所示,包含服務(wù)器總站與若干服務(wù)器子站;所有服務(wù)器子站分別與服務(wù)器總站通信連接。比如,服務(wù)器總站可以用于管理總公司的數(shù)據(jù),各個(gè)服務(wù)器子站可以分別還用于管理總公司下屬的子公司的數(shù)據(jù)。而且,服務(wù)器總站可以為數(shù)據(jù)發(fā)送端,服務(wù)器子站為數(shù)據(jù)接收端,或者,服務(wù)器總站可以為數(shù)據(jù)接收端,月艮務(wù)器子站為數(shù)據(jù)發(fā)送端。即,服務(wù)器總站可以向服務(wù)器子站發(fā)送數(shù)據(jù),服務(wù)器子站也可以向服務(wù)器總站發(fā)送數(shù)據(jù)。
[0022]在本實(shí)施方式中,數(shù)據(jù)發(fā)送端實(shí)時(shí)檢測(cè)待同步的數(shù)據(jù)的狀態(tài),并僅將數(shù)據(jù)更新日志按照預(yù)設(shè)的數(shù)據(jù)格式發(fā)送至數(shù)據(jù)接收端;其中,待同步的數(shù)據(jù)包含若干數(shù)據(jù)項(xiàng);數(shù)據(jù)更新日志中包含數(shù)據(jù)發(fā)送端中狀態(tài)更新的數(shù)據(jù)項(xiàng)。數(shù)據(jù)接收端實(shí)時(shí)地接收來(lái)自數(shù)據(jù)發(fā)送端的數(shù)據(jù),并將數(shù)據(jù)更新日志中的數(shù)據(jù)項(xiàng)賦值給數(shù)據(jù)接收端中相應(yīng)的數(shù)據(jù)項(xiàng),使數(shù)據(jù)接收端與數(shù)據(jù)發(fā)送端數(shù)據(jù)一致,也就是,