一種強一致性且高可用的分布式任務管理系統的制作方法【
技術領域:
】[0001]本發明涉及分布式數據庫系統領域,尤其是涉及一種強一致性且高可用的分布式任務管理系統。【
背景技術:
】[0002]在信息技術和數據管理領域,備份技術是一種重要的技術手段,用來解決生產服務器系統及之上的應用出現故障等情況下恢復其可用性。隨著數據信息呈爆炸式地增長,單節點的備份存儲、柜式的備份服務器系統無法更好地解決海量數據更快地備份與恢復的問題。因此分布式結構的備份系統便應運而生。[0003]備份系統的分布式結構應該能夠提供7*24的高可靠且高可用性服務,然而在多節點的集群情況下,單節點失效是無法避免的。因此,當前存在主從結構的系統架構與多副本策略用來保證系統的高可靠性與高可用性。然而主從結構的系統架構,主節點與從節點之間無法解決2個以上節點失效的問題,也無法提供強一致性保證;而對于多副本策略的分布式系統,有些只能夠提供最終一致性保證如Amazon的Dynamo,有些則需要借助于能夠提供強一致性保證的分布式文件系統,如Google的Bigtable依靠GFS文件系統解決強一致性,這樣導致開銷比較大。【
發明內容】[0004]本發明的目的就是為了克服上述現有技術存在的缺陷而提供一種開銷較小的強一致性且高可用的分布式任務管理系統,可解決分布式數據備份系統下,備份任務的管理信息與備份任務在分布式情況下一致性協調等問題。[0005]本發明的目的可以通過以下技術方案來實現:[0006]—種強一致性且高可用的分布式任務管理系統,包括通過網絡連接的Web后端模塊和備份服務器集群,所述備份服務器集群由多個備份服務器組成,各所述備份服務器包括依次連接的一致性模塊、日志模塊和存儲模塊,其中:[0007]—致性模塊,通過選舉方式成為Leader角色或Follower角色,若成為Leader角色,則接收Web后端模塊發送的日志信息并廣播,若成為Follower角色,則接收Leader角色廣播的日志信息并響應該日志信息;[0008]日志模塊,用于保存接收到的日志信息,并將接收到的日志信息提交到存儲模塊。[0009]所述一致性模塊包括:[0010]定時器單元,用于設定一超時定時器并啟動;[0011]選舉信息廣播單元,在所述超時定時器超時時響應,用于產生并廣播選舉為Leader角色的信息,并接收其它一致性模塊的反饋信息,根據所述反饋信息判斷是否成功成為Leader角色;[0012]日志廣播單元,在選舉信息廣播單元的判斷結果為是時響應,用于廣播Web后端模塊發送的日志信息;[0013]信息反饋單元,用于在收到其它一致性模塊廣播的信息后進行相應反饋;[0014]邏輯時間操作單元,在所述超時定時器超時時響應,用于獲取當前邏輯時間Term,并根據當前邏輯時間Term的值執行相應操作。[0015]所述選舉信息廣播單元中,當在設定時間內接收的半數以上反饋信息為同意時,判定為成功成為Leader角色。[0016]所述邏輯時間操作單元中的相應操作包括:[0017]A)超時定時器超時時,將當前邏輯時間Term的值執行加I操作后作為當前邏輯時間Term,整合入選舉信息廣播單元產生的選舉為Leader角色的信息中;[0018]B)當檢測到其它一致性模塊廣播的選舉為Leader角色的信息時,判斷該信息中的邏輯時間Term是否大于操作A)中獲取的當前邏輯時間Term,若是,則將一致性模塊變為Follower角色,若否,則反饋拒絕信息。[0019]所述信息反饋單元收到的信息包括響應選舉為Leader角色的信息的反饋信息和響應日志信息的確認信息。[0020]所述日志模塊包括:[0021]日志存儲單元,用于存儲接收到的日志信息;[0022]日志提交單元,用于在收到確認提交信息后,將接收到的日志信息提交到存儲模塊;[0023]日志刪除單元,用于刪除小于設定記錄的日志信息。[0024]所述設定記錄根據如下方式獲取:[0025]Leader角色獲取各Follower角色提交日志信息的最小記錄,以所述最小記錄作為相應Follower角色的設定記錄。[0026]所述存儲模塊包括LeveIDB存儲和Mysql數據庫。[0027]所述日志模塊將接收到的日志信息提交到存儲模塊具體為:[0028]將SQL操作日志提交到Mysql數據庫,將鎖操作日志和事件操作日志提交到LeveIDB存儲。[0029]所述Web后端模塊將SQL操作、鎖操作和事件操作分別對應封裝為SQL操作日志、鎖操作日志和事件操作日志后發送給Leader角色,Web后端模塊將數據庫查詢操作直接提交到Leader角色對應的存儲模塊。[0030]與現有技術相比,本發明具有以下有益效果:[0031]1、本發明通過選舉方式產生一個Leader節點,由Leader節點領導其它節點實現分布式存儲,少于半數節點的失效都不會破壞整個集群正常的運行,備份任務可以在不受影響的情況下正常工作,可實現一個高可靠性與高可用性的分布式系統。[0032]2、本發明可實現一個強一致性的分布式系統,對系統的任何操作一經寫入立即生效,不需要復雜的沖突避免和解決機制。[0033]3、本發明通過日志復制的方式解決多節點強一致性和高可用問題,不需要借助能夠提供強一致性保證的分布式文件系統,有效減少開銷。[0034]4、本發明在每個時期僅存在一個Leader節點,有效提高了數據處理的可靠性。【附圖說明】[0035]圖1為本發明Web后端模塊與Leader角色的交互示意圖;[0036]圖2為本發明選舉狀態轉換示意圖;[0037]圖3為本發明系統的基本工作流程圖。【具體實施方式】[0038]下面結合附圖和具體實施例對本發明進行詳細說明。本實施例以本發明技術方案為前提進行實施,給出了詳細的實施方式和具體的操作過程,但本發明的保護范圍不限于下述的實施例。[0039]本實施例提供一種強一致性且高可用的分布式任務管理系統,包括通過網絡連接的Web后端模塊I和備份服務器集群,Web后端模塊I中的Web后端管理程序能夠使用的方式包括:關系型數據庫的SQL操作、分布式的鎖操作和分布式的事件操作。本實施例中,備份服務器集群由至少三個備份服務器組成,每一備份服務器為一節點,各備份服務器的結構如圖1所示,包括依次連接的一致性模塊21、日志模塊22和存儲模塊,存儲模塊包括LevelDB存儲23和Mysql數據庫24。[0040]各備份服務器中,一致性模塊21通過選舉方式成為Leader角色或Follower角色,若成為Leader角色,則接收Web后端模塊發送的日志信息并廣播,若成為Follower角色,貝Ij接收Leader角色廣播的日志信息并響應該日志信息;日志模塊22用于保存接收到的日志信息,并將接收到的日志信息提交到存儲模塊。Leader角色負責與Web后端模塊通信并操作本地的日志模塊,且同一個時刻最多存在一個;Follower角色被動地響應遠程調用請求和操作本地的日志模塊。[0041]—致性模塊21包括定時器單元、選舉信息廣播單元、日志廣播單元、信息反饋單元和邏輯時間操作單元,其中,定時器單元用于設定一超時定時器并啟動;選舉信息廣播單元在超時定時器超時時響應,用于產生并廣播選舉為Leader角色的信息,并接收其它一致性模塊的反饋信息,根據反饋信息判斷是否成功成為Leader角色;日志廣播單元在選舉信息廣播單元的判斷結果為是時響應,用于廣播Web后端模塊發送的日志信息;信息反饋單元用于在收到其它一致性模塊廣播的信息后進行相應反饋;邏輯時間操作單元在超時定時器超時時響應,用于獲取當前邏輯時間Term,并根據當前邏輯時間Term的值執行相應操作。[0042]邏輯時間Term可以在分布式系統環境中解決時間同步問題,每個Term期間最多存在一個Leader,每次操作都要本地Term加I,其它節點通過Term變量判斷接收的信息是否為過期信息。邏輯時間操作單元中的相應操作包括:[0043]A)超時定時器超時時,將當前邏輯時間Term的當前第1頁1 2