国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      分布式數(shù)據(jù)庫集群的數(shù)據(jù)操作方法及系統(tǒng)的制作方法

      文檔序號:9453170閱讀:379來源:國知局
      分布式數(shù)據(jù)庫集群的數(shù)據(jù)操作方法及系統(tǒng)的制作方法
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及數(shù)據(jù)庫集群技術(shù)領(lǐng)域,特別涉及一種分布式數(shù)據(jù)庫集群的數(shù)據(jù)操作方法及系統(tǒng)。
      【背景技術(shù)】
      [0002]互聯(lián)網(wǎng)、尤其是移動互聯(lián)網(wǎng)的發(fā)展給傳統(tǒng)的數(shù)據(jù)庫數(shù)據(jù)管理帶來了極大的挑戰(zhàn),借助于互聯(lián)網(wǎng)數(shù)據(jù)操作可以在任意時間地點進(jìn)行,原有的集中管理式數(shù)據(jù)庫在面對高并發(fā)事務(wù)時的處理能力和容錯能力均難以保證數(shù)據(jù)的安全性和完整性。
      [0003]比如,對于多個異地節(jié)點同時進(jìn)行數(shù)據(jù)輸入和查詢操作的,傳統(tǒng)集中式數(shù)據(jù)庫通常采用讀寫控制來按序進(jìn)行,但該方式一方面降低了處理效率,嚴(yán)重影響整體性能;另一方面又會造成用戶等待時間變長,降低用戶體驗。因此,現(xiàn)有技術(shù)中進(jìn)一步出現(xiàn)了主從庫方式來提高數(shù)據(jù)操作效率,主從庫通過備份和同步方式實現(xiàn)并發(fā)讀寫,但其同樣存在明顯缺陷:主從庫只能保證不同類型的數(shù)據(jù)操作并行處理,同類操作的并行處理極易造成數(shù)據(jù)及數(shù)據(jù)庫的損壞;對同一數(shù)據(jù)的讀寫操作并行處理的邏輯復(fù)雜,且很難保證用戶獲取正確的數(shù)據(jù)。

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

      [0004]針對現(xiàn)有技術(shù)的缺陷,本發(fā)明的目的是提供一種分布式數(shù)據(jù)庫集群的數(shù)據(jù)操作方法及系統(tǒng),以提高數(shù)據(jù)并發(fā)操作的效率和可靠性。
      [0005]根據(jù)本發(fā)明的一個方面,提供了一種分布式數(shù)據(jù)庫集群的數(shù)據(jù)操作方法,包括步驟:
      [0006]接收用戶的數(shù)據(jù)操作請求,對所述數(shù)據(jù)操作的類型進(jìn)行識別;
      [0007]同時設(shè)置隊列和緩存區(qū),將非查詢操作存入隊列的同時將所述非查詢操作的數(shù)據(jù)存入緩存區(qū);
      [0008]通過所述隊列將所述非查詢操作交由主庫處理并返回操作狀態(tài)消息;
      [0009]將查詢操作交由從庫處理,對于同時存在于所述從庫和所述緩存區(qū)中的數(shù)據(jù),將所述數(shù)據(jù)從所述緩存區(qū)和所述從庫中取出并過濾,將過濾后的所述數(shù)據(jù)作為查詢結(jié)果返回。
      [0010]優(yōu)選地,所述方法還包括步驟:
      [0011]在所述主庫與所述從庫之間實時進(jìn)行同步或周期性進(jìn)行同步。
      [0012]優(yōu)選地,所述方法還包括步驟:
      [0013]在所述同步完成后將已同步到所述從庫的數(shù)據(jù)從所述緩存區(qū)中刪除。
      [0014]優(yōu)選地,所述方法還包括步驟:
      [0015]在所述主庫處理所述非查詢操作沒有報錯的情況下,將所述請求的Ack動作和數(shù)據(jù)庫的消息狀態(tài)寫成是一個事務(wù),統(tǒng)一在所述操作狀態(tài)消息中反饋。
      [0016]優(yōu)選地,所述方法還包括步驟:
      [0017]所述主庫處理所述非查詢操作時,在所述非查詢操作中加入冪等性業(yè)務(wù)邏輯。
      [0018]根據(jù)本發(fā)明的另一個方面,還同時提供了一種分布式數(shù)據(jù)庫集群的數(shù)據(jù)操作系統(tǒng),包括:
      [0019]識別模塊,用于接收用戶的數(shù)據(jù)操作請求,對所述數(shù)據(jù)操作的類型進(jìn)行識別;
      [0020]并發(fā)模塊,用于同時設(shè)置隊列和緩存區(qū),將非查詢操作存入隊列的同時將所述非查詢操作的數(shù)據(jù)存入緩存區(qū);
      [0021]寫入模塊,用于通過所述隊列將所述非查詢操作交由主庫處理并返回操作狀態(tài)消息;
      [0022]查詢模塊,用于將查詢操作交由從庫處理,對于同時存在于所述從庫和所述緩存區(qū)中的數(shù)據(jù),將所述數(shù)據(jù)從所述緩存區(qū)和所述從庫中取出并過濾,將過濾后的所述數(shù)據(jù)作為查詢結(jié)果返回。
      [0023]優(yōu)選地,所述系統(tǒng)還包括:
      [0024]同步模塊,用于在所述主庫與所述從庫之間實時進(jìn)行同步或周期性進(jìn)行同步。
      [0025]優(yōu)選地,所述系統(tǒng)還包括:
      [0026]清理模塊,用于在所述同步完成后將已同步到所述從庫的數(shù)據(jù)從所述緩存區(qū)中刪除。
      [0027]優(yōu)選地,所述系統(tǒng)還包括:
      [0028]消息處理模塊,用于在所述主庫處理所述非查詢操作沒有報錯的情況下,將所述請求的Ack動作和數(shù)據(jù)庫的消息狀態(tài)寫成是一個事務(wù),統(tǒng)一在所述操作狀態(tài)消息中反饋。
      [0029]優(yōu)選地,所述系統(tǒng)還包括:
      [0030]冪等處理模塊,用于在所述主庫處理所述非查詢操作時,在所述非查詢操作中加入冪等性業(yè)務(wù)邏輯。
      [0031]本發(fā)明實施例提供了一種分布式數(shù)據(jù)庫集群的數(shù)據(jù)操作方法及系統(tǒng),通過隊列及緩存區(qū)的控制實現(xiàn)了高并發(fā)及安全的數(shù)據(jù)操作,一方面隊列的使用保證了主庫寫入數(shù)據(jù)的惟一性和安全性,另一方面,使用緩存區(qū)保證從庫查詢數(shù)據(jù)的準(zhǔn)確性和完整性,故本發(fā)明的技術(shù)方案可顯著提高數(shù)據(jù)操作效率,提升了用戶體驗。
      【附圖說明】
      [0032]圖1是本發(fā)明實施例中分布式數(shù)據(jù)庫集群的數(shù)據(jù)操作方法的流程示意圖;
      [0033]圖2是本發(fā)明實施例中分布式數(shù)據(jù)庫集群的數(shù)據(jù)操作系統(tǒng)的模塊示意圖;
      [0034]圖3是本發(fā)明的一個優(yōu)選實施例中數(shù)據(jù)操作系統(tǒng)的應(yīng)用場景示意圖。
      【具體實施方式】
      [0035]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚明了,下面結(jié)合【具體實施方式】并參照附圖,對本發(fā)明進(jìn)一步詳細(xì)說明。應(yīng)該理解,這些描述只是示例性的,而并非要限制本發(fā)明的范圍。此外,在以下說明中,省略了對公知結(jié)構(gòu)和技術(shù)的描述,以避免不必要地混淆本發(fā)明的概念。
      [0036]現(xiàn)有技術(shù)中,數(shù)據(jù)庫集群采用主從庫形式配置,主庫用于唯一保存權(quán)威的數(shù)據(jù)庫數(shù)據(jù),從庫作為主庫的備份存在?,F(xiàn)有技術(shù)的數(shù)據(jù)庫集群系統(tǒng)在工作時,主庫接收并處理寫操作,實現(xiàn)數(shù)據(jù)的增刪修改;從庫接收并處理讀操作,向用戶返回查詢結(jié)果,系統(tǒng)定時將主庫數(shù)據(jù)與從庫同步?,F(xiàn)有技術(shù)可實現(xiàn)讀寫操作的并行處理,但同一類型的操作或同一數(shù)據(jù)的不同操作仍需復(fù)雜的邏輯控制,無法通過并行處理提高效率,同時數(shù)據(jù)的安全性和完整性也難以控制。
      [0037]為此,本發(fā)明實施例首先提供了一種分布式數(shù)據(jù)庫集群的數(shù)據(jù)操作的技術(shù)方案,通過隊列及緩存區(qū)的控制實現(xiàn)了高并發(fā)及安全的數(shù)據(jù)操作。如圖1所示,本發(fā)明實施例中的分布式數(shù)據(jù)庫集群的數(shù)據(jù)操作方法包括步驟:
      [0038]SI,接收用戶的數(shù)據(jù)操作請求,對所述數(shù)據(jù)操作的類型進(jìn)行識別;
      [0039]S2,同時設(shè)置隊列和緩存區(qū),將非查詢操作存入隊列的同時將所述非查詢操作的數(shù)據(jù)存入緩存區(qū);
      [0040]S3,通過所述隊列將所述非查詢操作交由主庫處理并返回操作狀態(tài)消息;
      [0041]S4,將查詢操作交由從庫處理,對于同時存在于所述從庫和所述緩存區(qū)中的數(shù)據(jù),將所述數(shù)據(jù)從所述緩存區(qū)和所述從庫中取出并過濾,將過濾后的所述數(shù)據(jù)作為查詢結(jié)果返回。
      [0042]其中,非查詢操作一般是數(shù)據(jù)寫入操作,包括但不限于新增數(shù)據(jù)、修改數(shù)據(jù)和刪除數(shù)據(jù)等。采用上述方式,一方面使用隊列保證主庫寫入數(shù)據(jù)的惟一性,當(dāng)出現(xiàn)高并發(fā)業(yè)務(wù)時,尤其是對同一數(shù)據(jù)的并發(fā)處理時,隊列可有效保證處理效率和安全性,只需按照數(shù)據(jù)操作發(fā)生的先后時序順序處理即可。另一方面,使用緩存區(qū)保證從庫查詢數(shù)據(jù)的準(zhǔn)確性和完整性,對于已發(fā)生但尚未更新到從庫的數(shù)據(jù),結(jié)合緩存區(qū)數(shù)據(jù)完成的查詢操作可確保用戶及時獲取正確且最新的結(jié)果。
      [0043]在本發(fā)明實施例中,更進(jìn)一步地,采用數(shù)據(jù)同步將主庫的數(shù)據(jù)更新傳遞到從庫。優(yōu)選地,主庫與從庫之間實時同步或周期性進(jìn)行同步。對于數(shù)據(jù)緩存區(qū),在所述同步完成后將已同步到所述從庫的數(shù)據(jù)從所述緩存區(qū)中刪除;緩存區(qū)中僅保留尚未同步到所述從庫的數(shù)據(jù),比如尚未寫入主庫的數(shù)據(jù)或已寫入主庫但尚未進(jìn)行同步的數(shù)據(jù)等,以避免緩存區(qū)無限擴(kuò)大和無效內(nèi)容影響查詢效率。
      [0044]優(yōu)選地,查詢操作的處理中,所述過濾包括拼接、去重等,將兩部分?jǐn)?shù)據(jù)合并成完整的數(shù)據(jù)反饋給用戶。對于非查詢操作,在處理沒有報錯的情況下,將請求消息的Ack動作和數(shù)據(jù)庫的消息狀態(tài)寫成是一個事務(wù),統(tǒng)一在所述操作狀態(tài)消息中反饋;該方式可保證隊列中的操作僅被無錯地處理一次,避免重復(fù)寫入引發(fā)數(shù)據(jù)異常。但對于例外的情況,比如業(yè)務(wù)邏輯執(zhí)行完畢而沒有報錯時,理論上說即將觸發(fā)返回所述操作狀態(tài)消息的行為,但在還沒有觸發(fā)的時刻服務(wù)掛掉了(包括但不限于設(shè)備和/或網(wǎng)絡(luò)嚴(yán)重異常),這時在系統(tǒng)恢復(fù)后可能會重復(fù)執(zhí)行該業(yè)務(wù)邏輯;為此,在非查詢操作中加入冪等性業(yè)務(wù)邏輯以避免重復(fù)執(zhí)行同一操作。
      [0045]另外,對于異常的處理,對于非查詢操作出現(xiàn)異常時,既不能丟棄該操作及相關(guān)數(shù)據(jù),也不能無限地拋出異常,因而優(yōu)選在有限次拋出異常后轉(zhuǎn)由人工介入處理。優(yōu)選地,設(shè)置專門存放異常操作及數(shù)據(jù)的異常隊列,在異常處理時按異常隊列的內(nèi)容順序去處理,該方式可以進(jìn)一步保證數(shù)據(jù)的完整性。
      [0046]更優(yōu)選地,在將所述非查詢操作的數(shù)據(jù)存入緩存區(qū)的同時可進(jìn)一步識別所述非查詢操作的目的,若多個所述非查詢操作指向同一目的,則在所述隊列和所述緩存區(qū)中僅保留最新一個所
      當(dāng)前第1頁1 2 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1