欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種數(shù)據(jù)庫(kù)的分布式處理方法及系統(tǒng)的制作方法

文檔序號(hào):10725101閱讀:493來(lái)源:國(guó)知局
一種數(shù)據(jù)庫(kù)的分布式處理方法及系統(tǒng)的制作方法
【專(zhuān)利摘要】公開(kāi)一種數(shù)據(jù)庫(kù)的分布式處理方法,業(yè)務(wù)請(qǐng)求的處理包括步驟:(1)業(yè)務(wù)請(qǐng)求發(fā)送給代理服務(wù)器proxy;(2)proxy通過(guò)本地緩存的數(shù)據(jù)庫(kù)服務(wù)器列表,利用路由算法找到一個(gè)目標(biāo)服務(wù)器,將請(qǐng)求轉(zhuǎn)發(fā)給代表該目標(biāo)服務(wù)器的智能計(jì)算體agent;(3)agent通過(guò)數(shù)據(jù)庫(kù)適配器與目標(biāo)服務(wù)器通訊;(4)處理結(jié)果返回agent;(5)agent將處理結(jié)果返回proxy;(6)proxy將處理結(jié)果返回業(yè)務(wù);所述步驟(3)中,agent通過(guò)定時(shí)與目標(biāo)服務(wù)器通訊,維護(hù)目標(biāo)服務(wù)器在分布式任務(wù)協(xié)調(diào)中的鍵?值對(duì),該鍵?值對(duì)包含目標(biāo)服務(wù)器的ip地址及端口;所述步驟(5)中,proxy通過(guò)監(jiān)聽(tīng)分布式任務(wù)協(xié)調(diào)中鍵?值對(duì)的變化情況,實(shí)時(shí)維護(hù)一個(gè)本地緩存數(shù)據(jù)庫(kù)列表。還提供數(shù)據(jù)庫(kù)的分布式處理系統(tǒng)。
【專(zhuān)利說(shuō)明】
一種數(shù)據(jù)庫(kù)的分布式處理方法及系統(tǒng)
技術(shù)領(lǐng)域
[0001]本發(fā)明屬于數(shù)據(jù)庫(kù)應(yīng)用的技術(shù)領(lǐng)域,具體地涉及一種數(shù)據(jù)庫(kù)的分布式處理方法,以及數(shù)據(jù)庫(kù)的分布式處理系統(tǒng)。
【背景技術(shù)】
[0002]數(shù)據(jù)庫(kù)(Database)是按照數(shù)據(jù)結(jié)構(gòu)來(lái)組織、存儲(chǔ)和管理數(shù)據(jù)的倉(cāng)庫(kù)。從操作數(shù)據(jù)的方式上講,數(shù)據(jù)庫(kù)可分為事務(wù)型數(shù)據(jù)庫(kù)及分析型數(shù)據(jù)庫(kù),事務(wù)型數(shù)據(jù)庫(kù)可以對(duì)數(shù)據(jù)進(jìn)行增,刪,改操作,一般服務(wù)于在線(xiàn)業(yè)務(wù);分析型數(shù)據(jù)庫(kù)主要用于分析及挖掘數(shù)據(jù),一般用于離線(xiàn)業(yè)務(wù)(數(shù)據(jù)倉(cāng)庫(kù))。
[0003]從存貯或處理的數(shù)據(jù)結(jié)構(gòu)上講,數(shù)據(jù)庫(kù)還可分為關(guān)系型數(shù)據(jù)庫(kù),圖數(shù)據(jù)庫(kù),鍵-值數(shù)據(jù)庫(kù),文檔數(shù)據(jù)庫(kù)等等,其中關(guān)系型數(shù)據(jù)庫(kù)還可進(jìn)一步劃分為行式存貯數(shù)據(jù)庫(kù)與列式存貯數(shù)據(jù)庫(kù)。
[0004]現(xiàn)有的數(shù)據(jù)庫(kù)分布式技術(shù)方案存下如下缺點(diǎn):
[0005]1、現(xiàn)有分布式方案都是專(zhuān)門(mén)針對(duì)某一特定的數(shù)據(jù)庫(kù),不具可移植性,或可移植性較差。
[0006]2、現(xiàn)有的分布式數(shù)據(jù)庫(kù)數(shù)據(jù)拆分方案對(duì)性能影響較大。
[0007]一般的分布式數(shù)據(jù)庫(kù)由于存在數(shù)據(jù)拆分分散存放問(wèn)題,在數(shù)據(jù)定位,數(shù)據(jù)聚合,分拆等方面開(kāi)銷(xiāo)較大,導(dǎo)致在某些小數(shù)據(jù)量上,集群性能甚至不如單機(jī)性能。
[0008]3、現(xiàn)有的數(shù)據(jù)庫(kù)分布式方案大都采用master-slave模式,擴(kuò)展及可維護(hù)性都較差,容易造成單點(diǎn)故障。
[0009]現(xiàn)有分布式方案一般采用一個(gè)master多個(gè)slave的模式,容易造成master的單點(diǎn)故障,另外,在master失效的情況下,需要從多個(gè)slave中選舉新的master,因而還需要一個(gè)選舉算法,增加了系統(tǒng)的復(fù)雜性。
[0010]4、現(xiàn)有的分布式數(shù)據(jù)庫(kù)方案中,業(yè)務(wù)與數(shù)據(jù)庫(kù)大都緊密綁定,難以移植,靈活性差。

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

[0011]本發(fā)明的技術(shù)解決問(wèn)題是:克服現(xiàn)有技術(shù)的不足,提供一種數(shù)據(jù)庫(kù)的分布式處理方法,其通用且可移植性高,保證了聚群性能在任何時(shí)候都不會(huì)低于單機(jī)版性能,不存在master與s Iave之分,擴(kuò)展性及可維護(hù)性好,靈活性強(qiáng)。
[0012]本發(fā)明的技術(shù)解決方案是:這種數(shù)據(jù)庫(kù)的分布式處理方法,業(yè)務(wù)請(qǐng)求的處理包括以下步驟:
[0013](I)業(yè)務(wù)請(qǐng)求發(fā)送給代理服務(wù)器proxy;
[0014](2)pr0Xy通過(guò)本地緩存的數(shù)據(jù)庫(kù)服務(wù)器列表,利用路由算法找到一個(gè)目標(biāo)服務(wù)器,將請(qǐng)求轉(zhuǎn)發(fā)給代表該目標(biāo)服務(wù)器的智能計(jì)算體agent;
[0015](3)agent通過(guò)數(shù)據(jù)庫(kù)適配器與目標(biāo)服務(wù)器通訊;[ΟΟ??] (4)處理結(jié)果返回agent;
[0017](5)agent將處理結(jié)果返回proxy;
[0018](6)proxy將處理結(jié)果返回業(yè)務(wù);
[0019]所述步驟(3)中,agent通過(guò)定時(shí)與目標(biāo)服務(wù)器通訊,維護(hù)目標(biāo)服務(wù)器在分布式任務(wù)協(xié)調(diào)中的鍵-值對(duì),該鍵-值對(duì)包含目標(biāo)服務(wù)器的ip地址及端口 ;
[0020]所述步驟(5)中,proxy通過(guò)監(jiān)聽(tīng)分布式任務(wù)協(xié)調(diào)中鍵-值對(duì)的變化情況,
[0021]實(shí)時(shí)維護(hù)一個(gè)本地緩存數(shù)據(jù)庫(kù)列表。
[0022]更進(jìn)一步地,所述步驟(3)分布式任務(wù)協(xié)調(diào)器具有臨時(shí)性動(dòng)態(tài)目錄,當(dāng)服務(wù)器啟動(dòng)時(shí),在/cluster目錄下注冊(cè)一個(gè)有關(guān)服務(wù)器信息的鍵-值對(duì),該鍵-值對(duì)包含該服務(wù)器的IP地址及端口,當(dāng)服務(wù)器正常運(yùn)行時(shí)該鍵-值對(duì)存在,如果服務(wù)器出現(xiàn)故障或當(dāng)機(jī)則該鍵-值對(duì)消亡,通過(guò)掃描分布式任務(wù)協(xié)調(diào)/cluster目錄下的所有鍵-值對(duì)信息,得到目前集群中正常運(yùn)行的服務(wù)器的數(shù)量。
[0023]更進(jìn)一步地,所述步驟(3)中,agent定時(shí)通過(guò)數(shù)據(jù)庫(kù)適配器維持與數(shù)據(jù)庫(kù)的心跳檢測(cè),當(dāng)數(shù)據(jù)庫(kù)正常時(shí),agent保持該服務(wù)器在分布式任務(wù)協(xié)調(diào)器的某一目錄下的鍵-值對(duì);當(dāng)檢測(cè)不正常時(shí),agent刪除該服務(wù)器在分布式任務(wù)協(xié)調(diào)器中對(duì)應(yīng)的鍵-值。
[0024]更進(jìn)一步地,所述步驟(2)中的路由算法為流量或者負(fù)載均衡方法。
[0025]更進(jìn)一步地,當(dāng)業(yè)務(wù)請(qǐng)求為數(shù)據(jù)事務(wù)操作時(shí),所述步驟(3)中,為了保證集群其它服務(wù)器數(shù)據(jù)同步,將事務(wù)相關(guān)數(shù)據(jù)寫(xiě)入消息服務(wù)器,通過(guò)數(shù)據(jù)同步模塊將事務(wù)相關(guān)數(shù)據(jù)同步到其他服務(wù)器中。
[0026]更進(jìn)一步地,如果數(shù)據(jù)事務(wù)操作失效,則重復(fù)再試,或另選其他服務(wù)器。
[0027]更進(jìn)一步地,所述同步為:監(jiān)聽(tīng)消息服務(wù)器,當(dāng)有新的事務(wù)相關(guān)數(shù)據(jù)寫(xiě)入時(shí),通過(guò)proxy的在線(xiàn)服務(wù)器緩存列表取得集群所有在線(xiàn)服務(wù)器名單,過(guò)濾掉已處理事務(wù)的數(shù)據(jù)庫(kù)服務(wù)器,避免事務(wù)重復(fù)操作,同時(shí)將事務(wù)信息推送給集群中的其他服務(wù)器。
[0028]更進(jìn)一步地,當(dāng)業(yè)務(wù)請(qǐng)求為數(shù)據(jù)查詢(xún)操作時(shí),所述步驟(3)中,如果數(shù)據(jù)事務(wù)操作失效,則重復(fù)再試,或另選其他服務(wù)器。
[0029]還提供了一種數(shù)據(jù)庫(kù)的分布式處理系統(tǒng),其包括:
[0030]數(shù)據(jù)庫(kù)適配器,其配置來(lái)與目標(biāo)服務(wù)器通訊;
[0031]智能計(jì)算體agent,其配置來(lái)通過(guò)數(shù)據(jù)庫(kù)適配器與目標(biāo)服務(wù)器通訊,接收目標(biāo)服務(wù)器的處理結(jié)果,將處理結(jié)果返回proxy;
[0032]代理服務(wù)器proxy,其配置來(lái)接收業(yè)務(wù)請(qǐng)求,通過(guò)本地緩存的數(shù)據(jù)庫(kù)服務(wù)器列表,利用路由算法找到一個(gè)目標(biāo)服務(wù)器,將請(qǐng)求轉(zhuǎn)發(fā)給代表該目標(biāo)服務(wù)器的智能計(jì)算體agent,并將處理結(jié)果返回業(yè)務(wù);
[0033]其中,agent通過(guò)定時(shí)與目標(biāo)服務(wù)器通訊,維護(hù)目標(biāo)服務(wù)器在分布式任務(wù)協(xié)調(diào)中的鍵-值對(duì),該鍵-值對(duì)包含目標(biāo)服務(wù)器的ip地址及端口; proxy通過(guò)監(jiān)聽(tīng)分布式任務(wù)協(xié)調(diào)中鍵-值對(duì)的變化情況,實(shí)時(shí)維護(hù)一個(gè)本地緩存數(shù)據(jù)庫(kù)列表。
[0034]更進(jìn)一步地,該處理系統(tǒng)還包括:
[0035]消息服務(wù)器,其配置來(lái)順序保存待同步的事務(wù)消息;
[0036]數(shù)據(jù)同步模塊,其配置來(lái)監(jiān)聽(tīng)消息服務(wù)器,當(dāng)有新的事務(wù)相關(guān)數(shù)據(jù)寫(xiě)入時(shí),數(shù)據(jù)同步模塊通過(guò)proxy的在線(xiàn)數(shù)據(jù)庫(kù)緩存列表取得集群所有在線(xiàn)數(shù)據(jù)庫(kù)名單,過(guò)濾掉已處理事務(wù)的數(shù)據(jù)庫(kù),避免事務(wù)重復(fù)操作,同時(shí)將事務(wù)信息推送給集群中的其他數(shù)據(jù)庫(kù)。
[0037]本發(fā)明通過(guò)agent與數(shù)據(jù)庫(kù)適配器結(jié)合,封裝了底層數(shù)據(jù)庫(kù)細(xì)節(jié),agent通過(guò)定時(shí)與目標(biāo)服務(wù)器通訊,維護(hù)目標(biāo)服務(wù)器在分布式任務(wù)協(xié)調(diào)中的鍵-值對(duì),該鍵-值對(duì)包含目標(biāo)服務(wù)器的ip地址及端口; proxy通過(guò)監(jiān)聽(tīng)分布式任務(wù)協(xié)調(diào)中鍵-值對(duì)的變化情況,實(shí)時(shí)維護(hù)一個(gè)本地緩存數(shù)據(jù)庫(kù)列表;使業(yè)務(wù)不需關(guān)心具體數(shù)據(jù)庫(kù)實(shí)現(xiàn),大大提升靈活性及可移植性,不僅適用于圖數(shù)據(jù)庫(kù),也可適用一般事務(wù)型數(shù)據(jù)庫(kù)及分析型數(shù)據(jù)庫(kù),通用性好;本發(fā)明因?yàn)椴恍枰獢?shù)據(jù)拆分,從而保證了聚群性能在任何時(shí)候都不會(huì)低于單機(jī)版性能;本發(fā)明采用無(wú)中心化設(shè)計(jì),所有節(jié)點(diǎn)同等對(duì)待,不存在mas ter與s Iave之分,擴(kuò)展性及可維護(hù)性好;本發(fā)明業(yè)務(wù)與數(shù)據(jù)庫(kù)無(wú)需緊密綁定,易于移植,靈活性強(qiáng)。
【附圖說(shuō)明】
[0038]圖1為根據(jù)本發(fā)明的數(shù)據(jù)庫(kù)的分布式處理方法的流程圖;
[0039]圖2為根據(jù)本發(fā)明的系統(tǒng)運(yùn)行狀態(tài)集群數(shù)據(jù)庫(kù)注冊(cè)及動(dòng)態(tài)監(jiān)聽(tīng)時(shí)的流程示意圖;
[0040]圖3為根據(jù)本發(fā)明的proxy加載及監(jiān)控在線(xiàn)服務(wù)器列表時(shí)的流程示意圖;
[0041]圖4為根據(jù)本發(fā)明的當(dāng)業(yè)務(wù)請(qǐng)求為數(shù)據(jù)事務(wù)操作時(shí)的流程示意圖;
[0042]圖5為根據(jù)本發(fā)明的數(shù)據(jù)同步時(shí)的流程示意圖;
[0043]圖6為根據(jù)本發(fā)明的當(dāng)業(yè)務(wù)請(qǐng)求為數(shù)據(jù)查詢(xún)操作時(shí)的流程示意圖;
[0044]圖7為根據(jù)本發(fā)明的數(shù)據(jù)庫(kù)的分布式處理系統(tǒng)的整體結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0045]從存貯或處理的數(shù)據(jù)結(jié)構(gòu)上講,數(shù)據(jù)庫(kù)還可分為關(guān)系型數(shù)據(jù)庫(kù),圖數(shù)據(jù)庫(kù),鍵-值數(shù)據(jù)庫(kù),文檔數(shù)據(jù)庫(kù)等等,其中關(guān)系型數(shù)據(jù)庫(kù)還可進(jìn)一步劃分為行式存貯數(shù)據(jù)庫(kù)與列式存貯數(shù)據(jù)庫(kù)。
[0046]圖論是圖數(shù)據(jù)庫(kù)的理論基礎(chǔ),圖是計(jì)算機(jī)科學(xué)中較常用的一類(lèi)抽象數(shù)據(jù)結(jié)構(gòu),在結(jié)構(gòu)和語(yǔ)義方面比線(xiàn)性表和樹(shù)更為復(fù)雜,更具有一般性表示能力,可以認(rèn)為圖數(shù)據(jù)是點(diǎn),線(xiàn),樹(shù)的集合。
[0047]與傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)相比,圖數(shù)據(jù)庫(kù)具有如下特點(diǎn)或優(yōu)勢(shì):
[0048]I).圖數(shù)據(jù)庫(kù)更擅長(zhǎng)存儲(chǔ)具有聯(lián)接關(guān)系的網(wǎng)狀數(shù)據(jù)結(jié)構(gòu);
[0049]2).圖數(shù)據(jù)庫(kù)可輕易處理十億級(jí)以上的節(jié)點(diǎn),百億以上的關(guān)系;
[0050]3).圖數(shù)據(jù)庫(kù)在涉及路徑計(jì)算與迭代方面有較大優(yōu)勢(shì);
[0051]圖數(shù)據(jù)庫(kù)在互聯(lián)網(wǎng)及社交網(wǎng)絡(luò)等方面有廣泛應(yīng)用,構(gòu)成圖數(shù)據(jù)的最核心要素有兩個(gè):點(diǎn)(Vertex),邊(edge),點(diǎn)對(duì)應(yīng)互聯(lián)網(wǎng)中的單個(gè)網(wǎng)頁(yè),或社交網(wǎng)絡(luò)中的單個(gè)人;邊可類(lèi)比于網(wǎng)頁(yè)之間的鏈接指向以及社交網(wǎng)絡(luò)中的好友關(guān)系。邊有方向性,包含三種狀態(tài):單向,雙向,無(wú)向。邊也可附帶權(quán)重屬性,表示重要程度。
[0052]圖存貯與圖計(jì)算是圖數(shù)據(jù)庫(kù)的兩大核心,圖存貯包括圖查詢(xún)(圖遍歷),往往需要事務(wù)性支持;圖計(jì)算如pagerank算法,最短路徑算法,疾病趨勢(shì)分析等,因?yàn)樯婕暗\(yùn)算,一般需要在內(nèi)存中運(yùn)行,因此圖計(jì)算不考慮數(shù)據(jù)的物理存儲(chǔ)及事務(wù)因素,圖計(jì)算屬于分析型數(shù)據(jù)庫(kù)。本專(zhuān)利主要關(guān)注事務(wù)型圖數(shù)據(jù)庫(kù),但也普遍適用于一般的事務(wù)型數(shù)據(jù)庫(kù),如鍵-鍵數(shù)據(jù)庫(kù),文檔數(shù)據(jù)庫(kù),關(guān)系型數(shù)據(jù)庫(kù)等等。
[0053]分布式事務(wù)型數(shù)據(jù)庫(kù)的數(shù)據(jù)一致性分為兩種:強(qiáng)一致性與最終一致性。所謂強(qiáng)一致性,就是對(duì)數(shù)據(jù)的任何事務(wù)操作(增,刪,改),在后續(xù)查詢(xún)時(shí)立即可見(jiàn),而弱一致性則充許在數(shù)據(jù)事務(wù)操作后,在有限的一段時(shí)間內(nèi),后續(xù)查詢(xún)數(shù)據(jù)可以不一致。強(qiáng)一致性多用于銀行,保險(xiǎn),電力等行業(yè),對(duì)性能有較大影響,而最終一致性在互聯(lián)網(wǎng)行業(yè)有廣泛的應(yīng)用,最終一致性一般比強(qiáng)一致性有更好的性能。
[0054]關(guān)于CAP理論。
[0055]CAP理論在互聯(lián)網(wǎng)界有著廣泛的知名度,CAP理論包括三原則:
[0056]C(Consistency,數(shù)據(jù)一致性):分布式系統(tǒng)中數(shù)據(jù)時(shí)刻保持同步;
[0057]A(Availability,可用性):分布式系統(tǒng)隨時(shí)可用;
[0058]P(Partit1n tolerance,分區(qū)容錯(cuò)):支持分布式。
[0059]根據(jù)CAP理論,以上三原則只能同時(shí)滿(mǎn)足二種,犧牲一種。對(duì)分布式系統(tǒng)而言,P是必須的,A—般也是必須的,只能犧牲C,所以分布式系統(tǒng)往往通過(guò)最終一致性來(lái)遵守CAP理論。而要實(shí)現(xiàn)強(qiáng)一致性,在不違背CAP理論的原則下,必然需要一些特殊的設(shè)計(jì)。
[0060]相比于傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù),圖數(shù)據(jù)庫(kù)的分布式有其特殊性,而且難度更大。圖數(shù)據(jù)庫(kù)由點(diǎn)數(shù)據(jù)與邊數(shù)據(jù)構(gòu)成,各種點(diǎn)與邊相互關(guān)聯(lián)構(gòu)成一張大圖,因此,如果要實(shí)現(xiàn)分布式一種方式就是裁圖,將一張大圖分割成很多小圖分散存放在不同服務(wù)器中。這其中涉及幾個(gè)方面的技術(shù)難題,其一是均勻裁圖的問(wèn)題,各小圖數(shù)據(jù)量要大致相同,其二是圖分割的問(wèn)題,是按點(diǎn)分割也是按邊分割,各有不同的技術(shù)難點(diǎn),其三是邊緣點(diǎn),邊緣邊的問(wèn)題,無(wú)論是按點(diǎn)分割還是按邊分割,這些邊緣點(diǎn)(邊)都會(huì)涉及交叉計(jì)算問(wèn)題,往往會(huì)在各節(jié)點(diǎn)重復(fù)存放。
[0061]另一種數(shù)據(jù)庫(kù)分布式思路是不進(jìn)行數(shù)據(jù)分割,而是在分布式系統(tǒng)中各服務(wù)器里分別保存一份同樣的大圖,這在很多業(yè)務(wù)場(chǎng)景中有其合理性,因?yàn)閷?duì)圖數(shù)據(jù)庫(kù)而言,由于其數(shù)據(jù)結(jié)構(gòu)的特殊性,單節(jié)點(diǎn)服務(wù)器就可以輕松存貯及處理具有數(shù)十億點(diǎn)與邊關(guān)系的圖數(shù)據(jù),理論上,只要內(nèi)存足夠大,單節(jié)點(diǎn)圖數(shù)據(jù)庫(kù)可以輕松存貯及處理千億左右的圖數(shù)據(jù)。
[0062]目前,開(kāi)源的圖數(shù)據(jù)庫(kù)基本不提供分布式支持,某些商業(yè)版雖然也有集群功能,但都是針對(duì)已身的解決方案,在源碼級(jí)支持,不具可移植性,且一般不提供強(qiáng)一致性事務(wù)支持。
[0063]事務(wù)型關(guān)系數(shù)據(jù)庫(kù)有多種實(shí)現(xiàn)方式,比如Oracle RAC通過(guò)共享存貯實(shí)現(xiàn)了分布式,集群實(shí)際上是共用一份數(shù)據(jù),并不是真正的分布式;mysql數(shù)據(jù)庫(kù)通過(guò)前端proxy路由也實(shí)現(xiàn)了數(shù)據(jù)分區(qū)及讀寫(xiě)分離技術(shù),由于存在數(shù)據(jù)分拆與合并的過(guò)程,對(duì)性能影響較大,可維護(hù)性,可伸縮性都較差。以上兩種分布式方案都是針對(duì)專(zhuān)門(mén)的數(shù)據(jù)庫(kù),不具可移植性。
[0064]根據(jù)CAP法則,事務(wù)型數(shù)據(jù)庫(kù)在同時(shí)滿(mǎn)足高可用性,分區(qū)容忍的條件下,不可能實(shí)現(xiàn)數(shù)據(jù)的一致性,因而分布式事務(wù)型數(shù)據(jù)庫(kù)往往采用最終一致性方案。
[0065]ZooKeeper是一個(gè)分布式的,開(kāi)放源碼的分布式應(yīng)用程序協(xié)調(diào)服務(wù),是Google的Chubby—個(gè)開(kāi)源的實(shí)現(xiàn)。它是一個(gè)為分布式應(yīng)用提供一致性服務(wù)的軟件,提供的功能包括:配置維護(hù)、域名服務(wù)、分布式同步、組服務(wù),集群健康狀態(tài)維護(hù)等。
[ΟΟ??] Zookeeper是本發(fā)明中實(shí)現(xiàn)數(shù)據(jù)庫(kù)分布式方案的核心組件,當(dāng)然其他分布式協(xié)調(diào)框架如etcd同樣適用本發(fā)明。
[0067]如圖1所示,這種數(shù)據(jù)庫(kù)的分布式處理方法,業(yè)務(wù)請(qǐng)求的處理包括以下步驟:
[0068](I)業(yè)務(wù)請(qǐng)求發(fā)送給代理服務(wù)器proxy;
[0069](2)pr0Xy通過(guò)本地緩存的數(shù)據(jù)庫(kù)服務(wù)器列表,利用路由算法找到一個(gè)目標(biāo)服務(wù)器,將請(qǐng)求轉(zhuǎn)發(fā)給代表該目標(biāo)服務(wù)器的智能計(jì)算體agent;
[0070](3)agent通過(guò)數(shù)據(jù)庫(kù)適配器與目標(biāo)服務(wù)器通訊;
[0071](4)處理結(jié)果返回agent;
[0072](5)agent將處理結(jié)果返回proxy;
[0073](6)proxy將處理結(jié)果返回業(yè)務(wù);
[0074]所述步驟(3)中,agent通過(guò)定時(shí)與目標(biāo)服務(wù)器通訊,維護(hù)目標(biāo)服務(wù)器在分布式任務(wù)協(xié)調(diào)中的鍵-值對(duì),該鍵-值對(duì)包含目標(biāo)服務(wù)器的ip地址及端口 ;
[0075]所述步驟(5)中,proxy通過(guò)監(jiān)聽(tīng)分布式任務(wù)協(xié)調(diào)中鍵-值對(duì)的變化情況,實(shí)時(shí)維護(hù)一個(gè)本地緩存數(shù)據(jù)庫(kù)列表。
[0076]本發(fā)明通過(guò)agent與數(shù)據(jù)庫(kù)適配器結(jié)合,封裝了底層數(shù)據(jù)庫(kù)細(xì)節(jié),agent通過(guò)定時(shí)與目標(biāo)服務(wù)器通訊,維護(hù)目標(biāo)服務(wù)器在分布式任務(wù)協(xié)調(diào)中的鍵-值對(duì),該鍵-值對(duì)包含目標(biāo)服務(wù)器的ip地址及端口; proxy通過(guò)監(jiān)聽(tīng)分布式任務(wù)協(xié)調(diào)中鍵-值對(duì)的變化情況,實(shí)時(shí)維護(hù)一個(gè)本地緩存數(shù)據(jù)庫(kù)列表;使業(yè)務(wù)不需關(guān)心具體數(shù)據(jù)庫(kù)實(shí)現(xiàn),大大提升靈活性及可移植性,不僅適用于圖數(shù)據(jù)庫(kù),也可適用一般事務(wù)型數(shù)據(jù)庫(kù)及分析型數(shù)據(jù)庫(kù),通用性好;本發(fā)明因?yàn)椴恍枰獢?shù)據(jù)拆分,從而保證了聚群性能在任何時(shí)候都不會(huì)低于單機(jī)版性能;本發(fā)明采用無(wú)中心化設(shè)計(jì),所有節(jié)點(diǎn)同等對(duì)待,不存在mas ter與s Iave之分,擴(kuò)展性及可維護(hù)性好;本發(fā)明業(yè)務(wù)與數(shù)據(jù)庫(kù)無(wú)需緊密綁定,易于移植,靈活性強(qiáng)。
[0077]更進(jìn)一步地,所述步驟(3)分布式任務(wù)協(xié)調(diào)器具有臨時(shí)性動(dòng)態(tài)目錄,當(dāng)服務(wù)器啟動(dòng)時(shí),在/cluster目錄下注冊(cè)一個(gè)有關(guān)服務(wù)器信息的鍵-值對(duì),該鍵-值對(duì)包含該服務(wù)器的IP地址及端口,當(dāng)服務(wù)器正常運(yùn)行時(shí)該鍵-值對(duì)存在,如果服務(wù)器出現(xiàn)故障或當(dāng)機(jī)則該鍵-值對(duì)消亡,通過(guò)掃描分布式任務(wù)協(xié)調(diào)/cluster目錄下的所有鍵-值對(duì)信息,得到目前集群中正常運(yùn)行的服務(wù)器的數(shù)量。
[0078]另外,如圖2所示,當(dāng)系統(tǒng)運(yùn)行狀態(tài)集群數(shù)據(jù)庫(kù)注冊(cè)及動(dòng)態(tài)監(jiān)聽(tīng)時(shí),所述步驟(3)中,agent定時(shí)通過(guò)數(shù)據(jù)庫(kù)適配器維持與數(shù)據(jù)庫(kù)的心跳檢測(cè),當(dāng)數(shù)據(jù)庫(kù)正常時(shí),agent保持該服務(wù)器在分布式任務(wù)協(xié)調(diào)器的某一目錄下的鍵-值對(duì);當(dāng)檢測(cè)不正常時(shí),agent刪除該服務(wù)器在分布式任務(wù)協(xié)調(diào)器中對(duì)應(yīng)的鍵-值。
[0079]圖3為根據(jù)本發(fā)明的proxy加載及監(jiān)控在線(xiàn)服務(wù)器列表時(shí)的流程示意圖。當(dāng)業(yè)務(wù)請(qǐng)求為proxy加載及監(jiān)控在線(xiàn)服務(wù)器列表時(shí),所述步驟(5)中,proxy通過(guò)實(shí)時(shí)監(jiān)聽(tīng)分布式任務(wù)協(xié)調(diào)器的目錄的變化,動(dòng)態(tài)維護(hù)本地在線(xiàn)服務(wù)器的緩存列表。
[0080]另外,所述步驟(2)中的路由算法為流量或者負(fù)載均衡方法。
[0081]圖4為根據(jù)本發(fā)明的當(dāng)業(yè)務(wù)請(qǐng)求為數(shù)據(jù)事務(wù)操作時(shí)的流程示意圖。當(dāng)業(yè)務(wù)請(qǐng)求為數(shù)據(jù)事務(wù)操作時(shí),所述步驟(3)中,為了保證集群其它服務(wù)器數(shù)據(jù)同步,將事務(wù)相關(guān)數(shù)據(jù)寫(xiě)入消息服務(wù)器,通過(guò)數(shù)據(jù)同步模塊將事務(wù)相關(guān)數(shù)據(jù)同步到其他服務(wù)器中。
[0082]更進(jìn)一步地,如果數(shù)據(jù)事務(wù)操作失效,則重復(fù)再試,或另選其他服務(wù)器。
[0083]如圖5所示,所述同步為:監(jiān)聽(tīng)消息服務(wù)器,當(dāng)有新的事務(wù)相關(guān)數(shù)據(jù)寫(xiě)入時(shí),通過(guò)proxy的在線(xiàn)服務(wù)器緩存列表取得集群所有在線(xiàn)服務(wù)器名單,過(guò)濾掉已處理事務(wù)的數(shù)據(jù)庫(kù)服務(wù)器,避免事務(wù)重復(fù)操作,同時(shí)將事務(wù)信息推送給集群中的其他服務(wù)器。
[0084]本分布式方案不支持?jǐn)?shù)據(jù)的強(qiáng)一致性,符合數(shù)據(jù)的最終一致性要求。
[0085]圖6為根據(jù)本發(fā)明的當(dāng)業(yè)務(wù)請(qǐng)求為數(shù)據(jù)查詢(xún)操作時(shí)的流程示意圖。另外,當(dāng)業(yè)務(wù)請(qǐng)求為數(shù)據(jù)查詢(xún)操作時(shí),所述步驟(3)中,如果數(shù)據(jù)查詢(xún)操作失效,則重復(fù)再試,或另選其他服務(wù)器。
[0086]如圖7所示,還提供了一種數(shù)據(jù)庫(kù)的分布式處理系統(tǒng),其包括:
[0087]數(shù)據(jù)庫(kù)適配器,其配置來(lái)與目標(biāo)服務(wù)器通訊;
[0088]智能計(jì)算體agent,其配置來(lái)通過(guò)數(shù)據(jù)庫(kù)適配器與目標(biāo)服務(wù)器通訊,接收目標(biāo)服務(wù)器的處理結(jié)果,將處理結(jié)果返回proxy;
[0089]代理服務(wù)器proxy,其配置來(lái)接收業(yè)務(wù)請(qǐng)求,通過(guò)本地緩存的數(shù)據(jù)庫(kù)服務(wù)器列表,利用路由算法找到一個(gè)目標(biāo)服務(wù)器,將請(qǐng)求轉(zhuǎn)發(fā)給代表該目標(biāo)服務(wù)器的智能計(jì)算體agent,并將處理結(jié)果返回業(yè)務(wù);
[0090]其中,agent通過(guò)定時(shí)與目標(biāo)服務(wù)器通訊,維護(hù)目標(biāo)服務(wù)器在分布式任務(wù)協(xié)調(diào)中的鍵-值對(duì),該鍵-值對(duì)包含目標(biāo)服務(wù)器的ip地址及端口; proxy通過(guò)監(jiān)聽(tīng)分布式任務(wù)協(xié)調(diào)中鍵-值對(duì)的變化情況,實(shí)時(shí)維護(hù)一個(gè)本地緩存數(shù)據(jù)庫(kù)列表。
[0091]更進(jìn)一步地,該處理系統(tǒng)還包括:
[0092]消息服務(wù)器,其配置來(lái)順序保存待同步的事務(wù)消息;
[0093]數(shù)據(jù)同步模塊,其配置來(lái)監(jiān)聽(tīng)消息服務(wù)器,當(dāng)有新的事務(wù)相關(guān)數(shù)據(jù)寫(xiě)入時(shí),數(shù)據(jù)同步模塊通過(guò)proxy的在線(xiàn)數(shù)據(jù)庫(kù)緩存列表取得集群所有在線(xiàn)數(shù)據(jù)庫(kù)名單,過(guò)濾掉已處理事務(wù)的數(shù)據(jù)庫(kù),避免事務(wù)重復(fù)操作,同時(shí)將事務(wù)信息推送給集群中的其他數(shù)據(jù)庫(kù)。
[0094]本發(fā)明的技術(shù)效果如下:
[0095]1.通用性及可移植性好
[0096]本方案無(wú)需針對(duì)具體圖數(shù)據(jù)庫(kù),也適用于其他鍵-值型數(shù)據(jù)庫(kù),關(guān)系型數(shù)據(jù)庫(kù),文檔型數(shù)據(jù)庫(kù),以及各種分析型數(shù)據(jù)庫(kù)。
[0097]通過(guò)替換不同的數(shù)據(jù)庫(kù)適配器就可以支持不同的數(shù)據(jù)庫(kù)集群。
[0098]2.非侵入式的數(shù)據(jù)庫(kù)分布式技術(shù)
[0099]無(wú)需改動(dòng)數(shù)據(jù)庫(kù)源碼,無(wú)需修改數(shù)據(jù)庫(kù)配置信息。
[0100]3.集群總吞吐量隨服務(wù)器數(shù)量線(xiàn)性提升
[0101]由于沒(méi)有進(jìn)行數(shù)據(jù)拆分,不存在數(shù)據(jù)的拆分與聚合步驟,集群整體吞吐量與服務(wù)器數(shù)量成正比。
[0102]4.支持負(fù)載均衡
[0103]通過(guò)各種路由算法,將業(yè)務(wù)流量均勻分?jǐn)偟郊焊鞣?wù)器中。
[0104]5.底層數(shù)據(jù)庫(kù)類(lèi)型對(duì)業(yè)務(wù)安全透明
[0105]通過(guò)agent及數(shù)據(jù)庫(kù)適配器封裝,業(yè)務(wù)無(wú)需了解底層數(shù)據(jù)庫(kù)細(xì)節(jié),因而也不需要專(zhuān)門(mén)針對(duì)具體數(shù)據(jù)庫(kù)設(shè)計(jì),大大提高了業(yè)務(wù)的可移植性及靈活性。
[0106]6.無(wú)中心化設(shè)計(jì)
[0107]所有數(shù)據(jù)庫(kù)服務(wù)器完全對(duì)等,既支持事務(wù)操作,也支持查詢(xún)操作,因此任何服務(wù)器故障都不會(huì)影響整個(gè)集群運(yùn)行,哪怕只剩下一臺(tái)服務(wù)器在線(xiàn)。
[0108]7.高容錯(cuò)性
[0109]故障服務(wù)器會(huì)自動(dòng)剔除,新增服務(wù)器會(huì)自動(dòng)加入調(diào)度列表,只要有一臺(tái)服務(wù)器在線(xiàn),集群就可以給外部業(yè)務(wù)提供服務(wù)。
[0110]以上所述,僅是本發(fā)明的較佳實(shí)施例,并非對(duì)本發(fā)明作任何形式上的限制,凡是依據(jù)本發(fā)明的技術(shù)實(shí)質(zhì)對(duì)以上實(shí)施例所作的任何簡(jiǎn)單修改、等同變化與修飾,均仍屬本發(fā)明技術(shù)方案的保護(hù)范圍。
【主權(quán)項(xiàng)】
1.一種數(shù)據(jù)庫(kù)的分布式處理方法,其特征在于:業(yè)務(wù)請(qǐng)求的處理包括以下步驟: (1)業(yè)務(wù)請(qǐng)求發(fā)送給代理服務(wù)器proxy; (2)pr0Xy通過(guò)本地緩存的數(shù)據(jù)庫(kù)服務(wù)器列表,利用路由算法找到一個(gè)目標(biāo)服務(wù)器,將請(qǐng)求轉(zhuǎn)發(fā)給代表該目標(biāo)服務(wù)器的智能計(jì)算體agent ; (3)agent通過(guò)數(shù)據(jù)庫(kù)適配器與目標(biāo)服務(wù)器通訊; (4)處理結(jié)果返回agent; (5)agent將處理結(jié)果返回proxy; (6)proxy將處理結(jié)果返回業(yè)務(wù); 所述步驟(3)中,agent通過(guò)定時(shí)與目標(biāo)服務(wù)器通訊,維護(hù)目標(biāo)服務(wù)器在分布式任務(wù)協(xié)調(diào)器中的鍵-值對(duì),該鍵-值對(duì)包含目標(biāo)服務(wù)器的ip地址及端口 ; 所述步驟(5)中,proxy通過(guò)監(jiān)聽(tīng)分布式任務(wù)協(xié)調(diào)中鍵-值對(duì)的變化情況,實(shí)時(shí)維護(hù)一個(gè)本地緩存數(shù)據(jù)庫(kù)列表。2.根據(jù)權(quán)利要求1所述的數(shù)據(jù)庫(kù)的分布式處理方法,其特征在于:所述步驟(3)分布式任務(wù)協(xié)調(diào)器具有臨時(shí)性動(dòng)態(tài)目錄,當(dāng)服務(wù)器啟動(dòng)時(shí),在/cluster目錄下注冊(cè)一個(gè)有關(guān)服務(wù)器信息的鍵-值對(duì),該鍵-值對(duì)包含該服務(wù)器的IP地址及端口,當(dāng)服務(wù)器正常運(yùn)行時(shí)該鍵-值對(duì)存在,如果服務(wù)器出現(xiàn)故障或當(dāng)機(jī)則該鍵-值對(duì)消亡,通過(guò)掃描分布式任務(wù)協(xié)調(diào)/cluster目錄下的所有鍵-值對(duì)信息,得到目前集群中正常運(yùn)行的服務(wù)器的數(shù)量。3.根據(jù)權(quán)利要求2所述的數(shù)據(jù)庫(kù)的分布式處理方法,其特征在于:所述步驟(3)中,agent定時(shí)通過(guò)數(shù)據(jù)庫(kù)適配器維持與數(shù)據(jù)庫(kù)的心跳檢測(cè),當(dāng)數(shù)據(jù)庫(kù)正常時(shí),agent保持該服務(wù)器在分布式任務(wù)協(xié)調(diào)器的某一目錄下的鍵-值對(duì);當(dāng)檢測(cè)不正常時(shí),agent刪除該服務(wù)器在分布式任務(wù)協(xié)調(diào)器中對(duì)應(yīng)的鍵-值。4.根據(jù)權(quán)利要求2所述的數(shù)據(jù)庫(kù)的分布式處理方法,其特征在于:所述步驟(2)中的路由算法為流量或者負(fù)載均衡方法。5.根據(jù)權(quán)利要求4所述的數(shù)據(jù)庫(kù)的分布式處理方法,其特征在于:當(dāng)業(yè)務(wù)請(qǐng)求為數(shù)據(jù)事務(wù)操作時(shí),所述步驟(3)中,為了保證集群其它服務(wù)器數(shù)據(jù)同步,將事務(wù)相關(guān)數(shù)據(jù)寫(xiě)入消息服務(wù)器,通過(guò)數(shù)據(jù)同步模塊將事務(wù)相關(guān)數(shù)據(jù)同步到其他服務(wù)器中。6.根據(jù)權(quán)利要求5所述的數(shù)據(jù)庫(kù)的分布式處理方法,其特征在于:如果數(shù)據(jù)事務(wù)操作失效,則重復(fù)再試,或另選其他服務(wù)器。7.根據(jù)權(quán)利要求5或6所述的數(shù)據(jù)庫(kù)的分布式處理方法,其特征在于:所述同步為:監(jiān)聽(tīng)消息服務(wù)器,當(dāng)有新的事務(wù)相關(guān)數(shù)據(jù)寫(xiě)入時(shí),通過(guò)proxy的在線(xiàn)服務(wù)器緩存列表取得集群所有在線(xiàn)服務(wù)器名單,過(guò)濾掉已處理事務(wù)的數(shù)據(jù)庫(kù)服務(wù)器,避免事務(wù)重復(fù)操作,同時(shí)將事務(wù)信息推送給集群中的其他服務(wù)器。8.根據(jù)權(quán)利要求4所述的數(shù)據(jù)庫(kù)的分布式處理方法,其特征在于:當(dāng)業(yè)務(wù)請(qǐng)求為數(shù)據(jù)查詢(xún)操作時(shí),所述步驟(3)中,如果數(shù)據(jù)查詢(xún)操作失效,則重復(fù)再試,或另選其他服務(wù)器。9.一種數(shù)據(jù)庫(kù)的分布式處理系統(tǒng),其特征在于:其包括: 數(shù)據(jù)庫(kù)適配器,其配置來(lái)與目標(biāo)服務(wù)器通訊; 智能計(jì)算體agent,其配置來(lái)通過(guò)數(shù)據(jù)庫(kù)適配器與目標(biāo)服務(wù)器通訊,接收目標(biāo)服務(wù)器的處理結(jié)果,將處理結(jié)果返回proxy; 代理服務(wù)器proxy,其配置來(lái)接收業(yè)務(wù)請(qǐng)求,通過(guò)本地緩存的數(shù)據(jù)庫(kù)服務(wù)器列表,利用路由算法找到一個(gè)目標(biāo)服務(wù)器,將請(qǐng)求轉(zhuǎn)發(fā)給代表該目標(biāo)服務(wù)器的智能計(jì)算體agent,并將處理結(jié)果返回業(yè)務(wù); 其中,agent通過(guò)定時(shí)與目標(biāo)服務(wù)器通訊,維護(hù)目標(biāo)服務(wù)器在分布式任務(wù)協(xié)調(diào)中的鍵-值對(duì),該鍵-值對(duì)包含目標(biāo)服務(wù)器的ip地址及端口 ; proxy通過(guò)監(jiān)聽(tīng)分布式任務(wù)協(xié)調(diào)中鍵-值對(duì)的變化情況,實(shí)時(shí)維護(hù)一個(gè)本地緩存數(shù)據(jù)庫(kù)列表。10.根據(jù)權(quán)利要求9所述的數(shù)據(jù)庫(kù)的分布式處理系統(tǒng),其特征在于:該處理系統(tǒng)還包括: 消息服務(wù)器,其配置來(lái)順序保存待同步的事務(wù)消息; 數(shù)據(jù)同步模塊,其配置來(lái)監(jiān)聽(tīng)消息服務(wù)器,當(dāng)有新的事務(wù)相關(guān)數(shù)據(jù)寫(xiě)入時(shí),數(shù)據(jù)同步模塊通過(guò)proxy的在線(xiàn)數(shù)據(jù)庫(kù)緩存列表取得集群所有在線(xiàn)數(shù)據(jù)庫(kù)名單,過(guò)濾掉已處理事務(wù)的數(shù)據(jù)庫(kù),避免事務(wù)重復(fù)操作,同時(shí)將事務(wù)信息推送給集群中的其他數(shù)據(jù)庫(kù)。
【文檔編號(hào)】G06F17/30GK106095977SQ201610443829
【公開(kāi)日】2016年11月9日
【申請(qǐng)日】2016年6月20日
【發(fā)明人】劉勝旺, 舒羿寧
【申請(qǐng)人】環(huán)球大數(shù)據(jù)科技有限公司
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
喀喇| 重庆市| 永胜县| 香格里拉县| 阳新县| 江油市| 荥阳市| 阳江市| 本溪市| 兰溪市| 汤原县| 尼勒克县| 横山县| 榆社县| 兰州市| 桐柏县| 游戏| 林芝县| 甘泉县| 延庆县| 肇东市| 深水埗区| 德令哈市| 通榆县| 长岭县| 栾城县| 汾阳市| 浙江省| 阿克| 特克斯县| 阳山县| 巴马| 鄂温| 博爱县| 乌鲁木齐县| 舞阳县| 营口市| 宣汉县| 西峡县| 岳普湖县| 花莲市|