亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種數(shù)據(jù)同步的方法和裝置的制造方法

文檔序號:9474379閱讀:245來源:國知局
一種數(shù)據(jù)同步的方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機技術(shù)領(lǐng)域,特別涉及一種數(shù)據(jù)同步的方法和裝置。
【背景技術(shù)】
[0002]數(shù)據(jù)同步是構(gòu)建Redis集群必須解決的問題,用于把主節(jié)點上接收到的數(shù)據(jù)同步到集群中的其它所有節(jié)點上的Redis上。
[0003]目前Redis數(shù)據(jù)同步主要依靠Redis自帶的同步機制來實現(xiàn)。通常集群內(nèi)的所有Redis節(jié)點之間互相連通,構(gòu)成一個樹狀拓撲,在整個樹狀拓撲里只有一個主節(jié)點用于接收數(shù)據(jù)寫入請求,另外的節(jié)點用于支持讀請求。寫入主節(jié)點的數(shù)據(jù)通過Redis同步協(xié)議將操作日志同步到所有其它Redis節(jié)點上,目標Redis節(jié)點執(zhí)行接收到的操作日志以完成數(shù)據(jù)同步。
[0004]在目前的技術(shù)方案下,存在以下幾個困難點:
[0005]I)集群部署是有拓撲形狀的樹狀結(jié)構(gòu),運維需要去關(guān)心拓撲的變化,因而增加了運維難度;
[0006]2)同一集群只能有一個主結(jié)節(jié)接收數(shù)據(jù)寫入,很難支持多個寫入源之間互相同步;
[0007]3)不支持異構(gòu)存儲,即:Redis主節(jié)點只能把數(shù)據(jù)同步到其它Redis節(jié)點上,不能同步到其它存儲結(jié)構(gòu)上(例如MySQL);
[0008]4) Redis自帶同步機制下,操作日志被記錄在內(nèi)存中,不做持久化,如果主從斷開時間太長,只能做全量數(shù)據(jù)同步。

【發(fā)明內(nèi)容】

[0009]有鑒于此,本發(fā)明提供一種數(shù)據(jù)同步的方法和裝置,一方面能夠支持多個寫入源之間相互同步,并且避免了在集群部署過程中形成的拓撲形的樹狀結(jié)構(gòu),降低了運維難度;另一方面實現(xiàn)了操作日志的持久化,在一定程度上減少了做全量數(shù)據(jù)同步的次數(shù);再一方面本發(fā)明的技術(shù)方案支持不同存儲結(jié)構(gòu)對數(shù)據(jù)的同步,能夠?qū)?shù)據(jù)同步到持久化的存儲結(jié)構(gòu)上,增加了數(shù)據(jù)同步的可靠性。
[0010]為實現(xiàn)上述目的,根據(jù)本發(fā)明的一個方面,提供了一種數(shù)據(jù)同步的方法。
[0011]本發(fā)明的數(shù)據(jù)同步的方法包括:數(shù)據(jù)總線接收與之相連的集群主節(jié)點的操作日志;所述操作日志用于保存集群主節(jié)點因數(shù)據(jù)變更而生成的觸發(fā)數(shù)據(jù)變更的命令;數(shù)據(jù)總線從所述操作日志中獲取所述觸發(fā)數(shù)據(jù)變更的命令,然后根據(jù)所述命令分別得到與該數(shù)據(jù)總線相連的從節(jié)點和/或任意集群的主節(jié)點的第一操作指令,再將所述第一操作指令發(fā)送給該操作指令對應(yīng)的與該數(shù)據(jù)總線相連的從節(jié)點和/或任意集群的主節(jié)點;所述從節(jié)點和/或任意集群的主節(jié)點運行所接收到的第一操作指令,以完成從所述集群主節(jié)點到所述從節(jié)點和/或任意集群的主節(jié)點的數(shù)據(jù)同步。
[0012]可選地,所述數(shù)據(jù)總線獲取與之連接的集群主節(jié)點的操作日志的步驟之后包括:數(shù)據(jù)總線根據(jù)所述操作日志分別得出對應(yīng)于多個存儲結(jié)構(gòu)的第二操作指令,然后將所述第二操作指令發(fā)送給該操作指令所對應(yīng)的與所述數(shù)據(jù)總線相連的存儲結(jié)構(gòu);所述存儲結(jié)構(gòu)運行所述第二操作指令以實現(xiàn)不同存儲結(jié)構(gòu)對數(shù)據(jù)的同步。
[0013]可選地,所述數(shù)據(jù)總線接收與之相連的集群主節(jié)點的操作日志的步驟之后包括:數(shù)據(jù)總線將所述操作日志存入隊列中;并且數(shù)據(jù)總線從所述操作日志中獲取所述觸發(fā)數(shù)據(jù)變更的命令的步驟包括:數(shù)據(jù)總線從所述隊列的操作日志中獲取所述觸發(fā)數(shù)據(jù)變更的命令。
[0014]根據(jù)本發(fā)明的另一方面,提供了一種數(shù)據(jù)同步的裝置。
[0015]本發(fā)明的數(shù)據(jù)同步的裝置包括:模擬Redis從節(jié)點模塊,用于接收之相連的集群主節(jié)點的操作日志;所述操作日志用于保存集群主節(jié)點因數(shù)據(jù)變更而生成的觸發(fā)數(shù)據(jù)變更的命令;第一命令解析器,用于從所述操作日志中獲取所述觸發(fā)數(shù)據(jù)變更的命令,然后根據(jù)所述命令分別得到與該數(shù)據(jù)總線相連的從節(jié)點和/或任意集群的主節(jié)點的第一操作指令,最后將所述第一操作指令發(fā)送給該操作指令對應(yīng)的與該數(shù)據(jù)總線相連的從節(jié)點和/或任意集群的主節(jié)點。
[0016]可選地,還包括第二命令解析器;所述第二命令解析器,用于根據(jù)所述操作日志分別得出對應(yīng)于多個存儲結(jié)構(gòu)的第二操作指令,然后將所述第二操作指令發(fā)送給該操作指令所對應(yīng)的與所述數(shù)據(jù)總線相連的存儲結(jié)構(gòu)。
[0017]可選地,還包括日志存儲模塊,用于將所述操作日志存入隊列中;并且所述第一命令解析器還用于從所述日志存儲模塊保存的操作日志中獲取所述觸發(fā)數(shù)據(jù)變更的命令。
[0018]根據(jù)本發(fā)明的技術(shù)方案,一方面由于增加了數(shù)據(jù)總線,能夠支持多個寫入源之間相互同步,同時由于集群主節(jié)、從節(jié)點直接與數(shù)據(jù)總線相連,因而避免了在集群部署過程中形成的拓撲形的樹狀結(jié)構(gòu),降低了運維難度;另一方面數(shù)據(jù)總線對所獲取到的操作日志進行了持久化保存,在一定程度上減少了做全量數(shù)據(jù)同步的次數(shù);再一方面本發(fā)明的技術(shù)方案中,由于數(shù)據(jù)能夠根據(jù)獲取到的操作日志得到不同存儲結(jié)構(gòu)的操作指令,因而能夠支持不同存儲結(jié)構(gòu)對數(shù)據(jù)的同步,在一定程度上增加了數(shù)據(jù)同步的可靠性。
【附圖說明】
[0019]附圖用于更好地理解本發(fā)明,不構(gòu)成對本發(fā)明的不當限定。其中:
[0020]圖1是根據(jù)本發(fā)明實施例的一種數(shù)據(jù)同步的裝置的示意圖;
[0021]圖2是根據(jù)本發(fā)明實施例的一種數(shù)據(jù)同步的方法的示意圖。
【具體實施方式】
[0022]以下結(jié)合附圖對本發(fā)明的示范性實施例做出說明,其中包括本發(fā)明實施例的各種細節(jié)以助于理解,應(yīng)當將它們認為僅僅是示范性的。因此,本領(lǐng)域普通技術(shù)人員應(yīng)當認識至IJ,可以對這里描述的實施例做出各種改變和修改,而不會背離本發(fā)明的范圍和精神。同樣,為了清楚和簡明,以下的描述中省略了對公知功能和結(jié)構(gòu)的描述。
[0023]圖1是根據(jù)本發(fā)明實施例的一種數(shù)據(jù)同步的裝置的示意圖。如圖1所示,數(shù)據(jù)同步的裝置10即為本發(fā)明實施例技術(shù)方案中所提及的數(shù)據(jù)總線,主要包括模擬Redis從節(jié)點模塊11、以及第一命令解析器12 ;模擬Redis從節(jié)點模塊11、以及第一命令解析器12都以軟件的方式實現(xiàn)。
[0024]模擬Redis從節(jié)點模塊11,用于接收之相連的集群主節(jié)點的操作日志;所述操作日志用于保存集群主節(jié)點因數(shù)據(jù)變更而生成的觸發(fā)數(shù)據(jù)變更的命令;當一個集群主節(jié)點(即:Redis Master)上面有數(shù)據(jù)更新時,Redis Master通過主從同步協(xié)議,將產(chǎn)生數(shù)據(jù)變更的命令發(fā)送到數(shù)據(jù)總線的模擬Redis從節(jié)點模塊上。
[0025]第一命令解析器12,用于從所述操作日志中獲取所述觸發(fā)數(shù)據(jù)變更的命令,然后根據(jù)所述命令分別得到與該數(shù)據(jù)總線相連的從節(jié)點和/或任意集群的主節(jié)點的第一操作指令,最后將所述第一操作指令發(fā)送給該操作指令對應(yīng)的與該數(shù)據(jù)總線相連的從節(jié)點和/或任意集群的主節(jié)點。
[0026]本發(fā)明的數(shù)據(jù)同步的裝置10還可包括第二命令解析器(圖中未示出),用于根據(jù)所述操作日志分別得出對應(yīng)于多個存儲結(jié)構(gòu)的第二操作指令,然后將所述第二操作指令發(fā)送給該操作指令所對應(yīng)的與所述數(shù)據(jù)總線相連的存儲結(jié)構(gòu)。
[0027]本發(fā)明的數(shù)據(jù)同步的裝置10還可包括日志存儲模塊(圖中未示出),用于保存數(shù)據(jù)總線的模擬Redis從節(jié)點模塊11所接收到的集群主節(jié)點因數(shù)據(jù)變更所產(chǎn)生的Redis命令日志。當數(shù)據(jù)總線中的模擬Redis從節(jié)點模塊11接收到從集群主節(jié)點Redis Master上
當前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1