本發(fā)明專利技術(shù)公開了一種數(shù)據(jù)讀寫方法,包括:劃分多個分組,每個分組均能實現(xiàn)讀服務(wù)和寫服務(wù),用戶需要讀寫數(shù)據(jù)時,查找就近分組;判斷查找到的就近分組是否可用,判定查找到的就近分組可用,則訪問所述就近分組,通過相應的分組接口進行數(shù)據(jù)讀寫;判定查找到的就近分組不可用,則訪問其他分組,通過相應的分組接口進行數(shù)據(jù)讀寫。本發(fā)明專利技術(shù)還相應地公開了一種數(shù)據(jù)讀寫系統(tǒng)。本發(fā)明專利技術(shù)能夠提高數(shù)據(jù)寫服務(wù)的可靠性,提高服務(wù)質(zhì)量及用戶體驗,且便于擴容升級。
【技術(shù)實現(xiàn)步驟摘要】
本專利技術(shù)涉及計算機
,尤其涉及ー種數(shù)據(jù)讀寫方法及系統(tǒng)。
技術(shù)介紹
隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,web相關(guān)產(chǎn)品越來越多,競爭也越來越激烈,在服務(wù)器宕機、互聯(lián)網(wǎng)數(shù)據(jù)中興(IDC)故障、網(wǎng)絡(luò)故障等情況下,web產(chǎn)品是否仍能提供高質(zhì)量的服務(wù),是用戶在選擇web產(chǎn)品時優(yōu)先考慮的因素之一,換言之,提供高可靠性的容災服務(wù),是web產(chǎn)品制勝的一大法寶。現(xiàn)有大多數(shù)web產(chǎn)品的數(shù)據(jù)存儲服務(wù)都是采用主備方式來容災,或者通過主寫備讀的方式來處理,但是,現(xiàn)有的主備方式只通過多個備用設(shè)備保證了數(shù)據(jù)讀取容災,而向主用設(shè)備寫數(shù)據(jù)仍存在單點隱患,一旦主用設(shè)備或其所在的IDC出現(xiàn)故障,就會導致數(shù)據(jù)寫 失敗,從而會嚴重降低服務(wù)質(zhì)量并影響用戶體驗。
技術(shù)實現(xiàn)思路
有鑒于此,本專利技術(shù)的主要目的在于提供ー種數(shù)據(jù)讀寫方法及系統(tǒng),能夠提高數(shù)據(jù)寫服務(wù)的可靠性,提高服務(wù)質(zhì)量及用戶體驗。為達到上述目的,本專利技術(shù)的技術(shù)方案是這樣實現(xiàn)的ー種數(shù)據(jù)讀寫方法,劃分多個分組,每個分組均能實現(xiàn)讀服務(wù)和寫服務(wù),該方法包括用戶需要讀寫數(shù)據(jù)時,查找就近分組;判斷查找到的就近分組是否可用,判定查找到的就近分組可用,則訪問所述就近分組,通過相應的分組接ロ進行數(shù)據(jù)讀寫;判定查找到的就近分組不可用,則訪問其他分組,通過相應的分組接ロ進行數(shù)據(jù)讀寫。該方法還包括數(shù)據(jù)在分組存儲后,所述分組有選擇性地向所述分組以外的至少一個分組同步所述存儲的數(shù)據(jù)。該方法還包括在向分組寫入數(shù)據(jù)的過程中,分組接ロ或接ロ鏈路發(fā)生故障,則所述分組接ロ向其他分組接ロ轉(zhuǎn)發(fā)需要寫入的數(shù)據(jù),或者,切換到其他分組接ロ寫入數(shù)據(jù)。ー種數(shù)據(jù)讀寫系統(tǒng),包括控制模塊、多個分組、以及與分組相對應的分組接ロ ;其中,所述控制模塊,用于在用戶需要讀寫數(shù)據(jù)時,查找就近分組,并判斷查找到的就近分組是否可用,判定查找到的就近分組可用,則訪問所述就近分組,通過相應的分組接ロ進行數(shù)據(jù)讀寫;判定查找到的就近分組不可用,則訪問其他分組,通過相應的分組接ロ進行數(shù)據(jù)讀寫。所述每個分組至少包括讀服務(wù)和寫服務(wù),該方法還包括數(shù)據(jù)通過寫服務(wù)在分組存儲后,所述分組的寫服務(wù)有選擇性地向所述分組以外的至少ー個分組的寫服務(wù)同步所述存儲的數(shù)據(jù)。所述分組接ロ,還用于在分組接ロ或接ロ鏈路發(fā)生故障吋,向其他分組接ロ轉(zhuǎn)發(fā)需要寫入的數(shù)據(jù)。所述控制模塊,還用于在分組寫入數(shù)據(jù)的過程中,分組接ロ或接ロ鏈路發(fā)生故障時,控制切換到其他分組接ロ寫入數(shù)據(jù)。所述分組包括寫服務(wù)、讀服務(wù)、主庫、備庫和緩存;其中,數(shù)據(jù)寫入時,寫服務(wù)向主庫寫入數(shù)據(jù),數(shù)據(jù)寫入后,主庫向備庫同步數(shù)據(jù),數(shù)據(jù)讀取吋,讀服務(wù)首先從緩存中讀取數(shù)據(jù),如果緩存沒有,則從備庫讀取數(shù)據(jù),返回結(jié)果的同時將該數(shù)據(jù)同步到緩存中,以供下次讀取。所述分組包括寫服務(wù)、讀服務(wù)、緩存和數(shù)據(jù)庫;其中,應用程序調(diào)用寫服務(wù),TTC 數(shù)據(jù)會自動同步到數(shù)據(jù)庫中,調(diào)用讀服務(wù)時,如果TTC緩存中有則直接返回,如果沒有則向數(shù)據(jù)庫查詢,然后將結(jié)果更新到緩存再返回。所述分組包括寫接ロ、讀接ロ、數(shù)據(jù)庫、至少ー個讀服務(wù)和與讀服務(wù)對應的緩存;其中,寫操作直接通過寫接ロ更新到數(shù)據(jù)庫中,寫接ロ同時將寫消息轉(zhuǎn)發(fā)給讀接ロー份,讀接ロ將該寫消息轉(zhuǎn)發(fā)到對應的讀服務(wù),以便將該寫消息更新到緩存中。本專利技術(shù)提出的數(shù)據(jù)讀寫方法及系統(tǒng),劃分多個分組,每個分組均能實現(xiàn)讀服務(wù)和寫服務(wù),用戶需要讀寫數(shù)據(jù)時,查找就近分組;判斷查找到的就近分組是否可用,判定查找到的就近分組可用,則訪問所述就近分組,通過相應的分組接ロ進行數(shù)據(jù)讀寫;判定查找到的就近分組不可用,則訪問其他分組,通過相應的分組接ロ進行數(shù)據(jù)讀寫。本專利技術(shù)能夠提高數(shù)據(jù)寫服務(wù)的可靠性,提高服務(wù)質(zhì)量及用戶體驗,且便于擴容升級。附圖說明圖1為本專利技術(shù)數(shù)據(jù)讀寫方法流程示意圖;圖2為Memchache緩存方式的原理示意圖;圖3為TTC緩存方式的原理示意圖;圖4為全量分離緩存方式的原理示意圖;圖5為本專利技術(shù)以兩個分組為例,相應于圖2的系統(tǒng)結(jié)構(gòu)示意圖;圖6為本專利技術(shù)以兩個分組為例,相應于圖3的系統(tǒng)結(jié)構(gòu)示意圖;圖7為本專利技術(shù)以兩個分組為例,相應于圖4的系統(tǒng)結(jié)構(gòu)示意圖。具體實施例方式本專利技術(shù)的基本思想是劃分多個分組,每個分組均能實現(xiàn)讀服務(wù)和寫服務(wù),用戶需要讀寫數(shù)據(jù)時,查找就近分組;判斷查找到的就近分組是否可用,判定查找到的就近分組可用,則訪問所述就近分組,通過相應的分組接ロ進行數(shù)據(jù)讀寫;判定查找到的就近分組不可用,則訪問其他分組,通過相應的分組接ロ進行數(shù)據(jù)讀寫。本專利技術(shù)結(jié)合讀寫分離、分組(set)模型、分布式策略,針對海量處理、高可靠性等特點提供了一個完整的數(shù)據(jù)存儲方案,本專利技術(shù)中,分組是ー組相關(guān)的資源的組合,可以提供相對固定的一定數(shù)量的用戶服務(wù),也是ー個部署単位。圖1為本專利技術(shù)數(shù)據(jù)讀寫方法流程示意圖,如圖1所示,該方法包括步驟101 :用戶需要讀寫數(shù)據(jù)。步驟102 :查找就近分組。本專利技術(shù)中,劃分多個分組,每個分組均能實現(xiàn)讀服務(wù)和寫服務(wù),且每個分組有ー個唯一編號,存儲數(shù)據(jù)時每個數(shù)據(jù)項的編號(key)都以其分組編號為前綴,這樣可以保證數(shù)據(jù)的全局卩隹一'注。步驟103 :判斷查找到的就近分組是否可用,如果查找到的就近分組可用,執(zhí)行步驟104 ;如果查找到的就近分組不可用,則執(zhí)行步驟105。需要說明的是,查找到的就近分組可以為ー個也可以為多個,查找到多個就近分組時,依次對各個就近分組進行判斷,直到找到可用的就近分組或遍歷所有查找到的就近分組,停止判斷。 步驟104 :訪問所述就近分組,進行數(shù)據(jù)讀寫。步驟105 :訪問其他分組,進行數(shù)據(jù)讀寫。需要說明的是,本專利技術(shù)中,數(shù)據(jù)在某分組存儲后,該分組可以有選擇性地向該分組以外的至少ー個分組同步所述存儲的數(shù)據(jù),并有同步失敗的重做機制,例如,該分組將同步失敗的ニ進制協(xié)議包記錄到文件中,文件的格式為開始標記(Oxfd58646c)+unix時間戳+包長+消息包+結(jié)束標記(0x6c6458fd),文件名為IP地址+端ロ +同步方式(tcp為I或udp為2)+日期+小時(0-23) +序列號(0-3,因為每15分鐘ー個文件),然后有消息同步工具根據(jù)文件名和文件內(nèi)的內(nèi)容進行實時同步,每同步ー個消息包,記錄該文件下ー個協(xié)議包的文件行數(shù),以便同步工具重啟時,可以直接從該行開始處理;如果已經(jīng)處理到最后ー行,毎秒檢查該文件是否有新包寫入,直至有下一個失敗文件產(chǎn)生;如果同步協(xié)議包同步失敗,則告警,并不斷重試直至成功。需要說明的是,如果在向分組寫入數(shù)據(jù)的過程中,分組接ロ或接ロ鏈路發(fā)生故障,則該分組接ロ需要向其他分組接ロ轉(zhuǎn)發(fā)需要寫入的數(shù)據(jù),或者,系統(tǒng)切換到其他分組接ロ寫入數(shù)據(jù)。一般的,將數(shù)據(jù)的讀寫服務(wù)分離,使讀服務(wù)或?qū)懛?wù)都方便各自擴展,讀寫分離根據(jù)業(yè)務(wù)不同主要有下面三種方式圖2為Memchache緩存方式的原理示意圖,如圖2所示,數(shù)據(jù)寫入時,寫服務(wù)向主庫寫入數(shù)據(jù),數(shù)據(jù)寫入后,主庫向備庫同步數(shù)據(jù),數(shù)據(jù)讀取吋,讀服務(wù)首先從緩存中讀取數(shù)據(jù),如果緩存沒有,則從備庫讀取數(shù)據(jù),返回結(jié)果的同時將該數(shù)據(jù)同步到緩存中,以供下次讀取。圖3為TTC(tencent table cache)緩存方式的原理示意圖,如圖3所示,TTC為公司的數(shù)據(jù)庫緩存服務(wù),有獨立的接口和api,應用程序調(diào)用寫服務(wù),TTC數(shù)據(jù)會自動同步到數(shù)據(jù)庫中,調(diào)用讀服務(wù)時,如果TTC緩存中有則直接返回,如果沒有則向數(shù)據(jù)庫(DB)查詢,然后本文檔來自技高網(wǎng)...
【技術(shù)保護點】
一種數(shù)據(jù)讀寫方法,其特征在于,劃分多個分組,每個分組均能實現(xiàn)讀服務(wù)和寫服務(wù),該方法包括:用戶需要讀寫數(shù)據(jù)時,查找就近分組;判斷查找到的就近分組是否可用,判定查找到的就近分組可用,則訪問所述就近分組,通過相應的分組接口進行數(shù)據(jù)讀寫;判定查找到的就近分組不可用,則訪問其他分組,通過相應的分組接口進行數(shù)據(jù)讀寫。
【技術(shù)特征摘要】
【專利技術(shù)屬性】
技術(shù)研發(fā)人員:閆清嶺,沃英杰,范禹,戴魏巍,
申請(專利權(quán))人:騰訊科技北京有限公司,
類型:發(fā)明
國別省市:
還沒有人留言評論。發(fā)表了對其他瀏覽者有用的留言會獲得科技券。