本申請涉及數(shù)據(jù)庫領(lǐng)域,尤其涉及一種分布式數(shù)據(jù)庫、消息處理方法、裝置及電子設(shè)備。
背景技術(shù):
1、數(shù)據(jù)庫支持多租戶,不同租戶的數(shù)據(jù)訪問和數(shù)據(jù)存儲都是隔離的,從而保證數(shù)據(jù)的安全。每個(gè)租戶需要有對應(yīng)的租戶配置,租戶配置的配置信息用于指定本租戶的租戶id、租戶名稱、主備局等信息。數(shù)據(jù)庫各模塊的上電和消息交互依賴于配置信息的正確性。
2、分布式數(shù)據(jù)庫需要對數(shù)據(jù)進(jìn)行備份,因此存在多個(gè)副本的數(shù)據(jù)。每個(gè)租戶有相應(yīng)的主用局或者備用局(示例性的,主用局和備用局可以設(shè)置于不同地點(diǎn))。當(dāng)前組網(wǎng)模式一般為:數(shù)據(jù)庫有主用局和備用局兩個(gè)局,每個(gè)局存在2個(gè)租戶互相備份數(shù)據(jù)。業(yè)務(wù)通過客戶端訪問到數(shù)據(jù)庫。
3、客戶端執(zhí)行上電流程時(shí),需要從主用局的數(shù)據(jù)庫管理節(jié)點(diǎn)獲取到配置消息,然后針對獲取到的配置消息中包含的租戶id、租戶名稱、主備局等信息獲取對應(yīng)租戶的數(shù)據(jù)節(jié)點(diǎn)的分布信息和狀態(tài)信息,最終達(dá)到上電成功狀態(tài)。
4、假設(shè)有1000個(gè)客戶端,則數(shù)據(jù)庫數(shù)據(jù)單個(gè)節(jié)點(diǎn)發(fā)生一次狀態(tài)的切換,通知到客戶端,管理節(jié)點(diǎn)需要發(fā)送1000條通知消息至客戶端,如果有50個(gè)節(jié)點(diǎn)內(nèi)部的分片發(fā)生了狀態(tài)切換,則短時(shí)間內(nèi)管理節(jié)點(diǎn)需要發(fā)送1000*50條消息至客戶端。
5、可見,數(shù)據(jù)庫管理節(jié)點(diǎn)和其他模塊的交互消息總是很多,當(dāng)數(shù)據(jù)庫規(guī)模達(dá)到一定程度時(shí),數(shù)據(jù)庫管理節(jié)點(diǎn)因消息交互所帶來的cpu消耗將成為瓶頸,這極大的限制了數(shù)據(jù)庫的容量和處理性能。
技術(shù)實(shí)現(xiàn)思路
1、為了解決傳統(tǒng)組網(wǎng)框架下過多的消息交互導(dǎo)致的數(shù)據(jù)庫容量和處理性能下降的技術(shù)問題或者至少部分地解決上述技術(shù)問題,本申請?zhí)峁┝艘环N分布式數(shù)據(jù)庫、消息處理方法、裝置及電子設(shè)備。
2、第一方面,本申請?zhí)峁┝艘环N分布式數(shù)據(jù)庫,包括:數(shù)據(jù)庫管理節(jié)點(diǎn)、主服務(wù)組件控制單元和多個(gè)服務(wù)組件;
3、所述數(shù)據(jù)庫管理節(jié)點(diǎn)與所述主服務(wù)組件控制單元通信連接,用于向所述主服務(wù)組件控制單元發(fā)送第一消息,或者,接收來自于所述主服務(wù)組件控制單元的第二消息;
4、所述主服務(wù)組件控制單元與多個(gè)服務(wù)組件通信連接,用于向各所述服務(wù)組件轉(zhuǎn)發(fā)所述第一消息,或者,將來自于各所述服務(wù)組件的第二消息轉(zhuǎn)發(fā)至所述數(shù)據(jù)庫管理節(jié)點(diǎn);
5、所述服務(wù)組件,用于接收來自于所述主服務(wù)組件控制單元的所述第一消息,或者,向所述主服務(wù)組件控制單元發(fā)送所述第二消息。
6、第二方面,本申請?zhí)峁┝艘环N消息處理方法,應(yīng)用于主服務(wù)組件控制單元,包括:
7、接收來自于數(shù)據(jù)庫管理節(jié)點(diǎn)的第一消息;
8、向各所述服務(wù)組件轉(zhuǎn)發(fā)所述第一消息;
9、或者,
10、接收來自于各所述服務(wù)組件的第二消息;
11、將來自于各所述服務(wù)組件的第二消息轉(zhuǎn)發(fā)至所述數(shù)據(jù)庫管理節(jié)點(diǎn)。
12、第三方面,本申請?zhí)峁┝艘环N消息處理方法,應(yīng)用于服務(wù)組件,包括:
13、接收來自于所述主服務(wù)組件控制單元的所述第一消息,所述第一消息是所述主服務(wù)組件控制單元從數(shù)據(jù)庫管理節(jié)點(diǎn)接收到的;
14、或者,
15、向所述主服務(wù)組件控制單元發(fā)送所述第二消息,以使所述主服務(wù)組件控制單元將所述第二消息轉(zhuǎn)發(fā)至所述數(shù)據(jù)庫管理節(jié)點(diǎn)。
16、第四方面,本申請?zhí)峁┝艘环N消息處理裝置,應(yīng)用于主服務(wù)組件控制單元,包括:
17、第一接收模塊,用于接收來自于數(shù)據(jù)庫管理節(jié)點(diǎn)的第一消息;
18、第一轉(zhuǎn)發(fā)模塊,用于向各所述服務(wù)組件轉(zhuǎn)發(fā)所述第一消息;
19、或者,
20、第二接收模塊,用于接收來自于各所述服務(wù)組件的第二消息;
21、第二轉(zhuǎn)發(fā)模塊,用于將來自于各所述服務(wù)組件的第二消息轉(zhuǎn)發(fā)至所述數(shù)據(jù)庫管理節(jié)點(diǎn)。
22、第五方面,本申請?zhí)峁┝艘环N消息處理裝置,應(yīng)用于服務(wù)組件,包括:
23、第三接收模塊,用于接收來自于所述主服務(wù)組件控制單元的所述第一消息,所述第一消息是所述主服務(wù)組件控制單元從數(shù)據(jù)庫管理節(jié)點(diǎn)接收到的;
24、或者,
25、第一發(fā)送模塊,用于向所述主服務(wù)組件控制單元發(fā)送所述第二消息,以使所述主服務(wù)組件控制單元將所述第二消息轉(zhuǎn)發(fā)至所述數(shù)據(jù)庫管理節(jié)點(diǎn)。
26、第六方面,本申請?zhí)峁┝艘环N電子設(shè)備,包括處理器、通信接口、存儲器和通信總線,其中,處理器,通信接口,存儲器通過通信總線完成相互間的通信;
27、存儲器,用于存放計(jì)算機(jī)程序;
28、處理器,用于執(zhí)行存儲器上所存放的程序時(shí),實(shí)現(xiàn)第二方面任一所述的消息處理方法,或者,第三方面任一所述的消息處理方法。
29、第七方面,本申請?zhí)峁┝艘环N計(jì)算機(jī)可讀存儲介質(zhì),所述計(jì)算機(jī)可讀存儲介質(zhì)上存儲有消息處理方法的程序,所述消息處理方法的程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)第二方面任一所述的消息處理方法,或者,第三方面任一所述的消息處理方法的步驟。
30、本申請實(shí)施例提供的上述技術(shù)方案與現(xiàn)有技術(shù)相比具有如下優(yōu)點(diǎn):
31、本申請實(shí)施例通過使用主服務(wù)組件控制單元實(shí)現(xiàn)對分布式數(shù)據(jù)庫的組網(wǎng)框架進(jìn)行分層,通過主服務(wù)組件控制單元實(shí)現(xiàn)消息的分流,減少數(shù)據(jù)庫管理節(jié)點(diǎn)因消息交互所帶來的處理壓力,有效的解決了數(shù)據(jù)庫管理節(jié)點(diǎn)的性能瓶頸問題,提高分布式數(shù)據(jù)庫的處理性能,并且,由于避免了性能瓶頸的出現(xiàn),可以更加便于為分布式進(jìn)行擴(kuò)容,提高分布式數(shù)據(jù)庫的容量。
1.一種分布式數(shù)據(jù)庫,其特征在于,包括:數(shù)據(jù)庫管理節(jié)點(diǎn)、主服務(wù)組件控制單元和多個(gè)服務(wù)組件;
2.根據(jù)權(quán)利要求1所述的分布式數(shù)據(jù)庫,其特征在于,還包括:備服務(wù)組件控制單元;
3.根據(jù)權(quán)利要求1所述的分布式數(shù)據(jù)庫,其特征在于,多個(gè)所述服務(wù)組件被劃分為至少一個(gè)服務(wù)組件組合,每個(gè)服務(wù)組件組合中包括:主服務(wù)組件和若干個(gè)從服務(wù)組件;
4.根據(jù)權(quán)利要求1所述的分布式數(shù)據(jù)庫,其特征在于,每個(gè)所述服務(wù)組件中包括:主進(jìn)程及多個(gè)輔助進(jìn)程;
5.根據(jù)權(quán)利要求4所述的分布式數(shù)據(jù)庫,其特征在于,所述主進(jìn)程中包括:對外交互線程、第一主線程及多個(gè)第一輔助線程;
6.根據(jù)權(quán)利要求5所述的分布式數(shù)據(jù)庫,其特征在于,所述輔助進(jìn)程中包括:第二主線程;
7.根據(jù)權(quán)利要求6所述的分布式數(shù)據(jù)庫,其特征在于,所述輔助進(jìn)程中還包括:第二輔助線程;
8.一種消息處理方法,其特征在于,應(yīng)用于主服務(wù)組件控制單元,包括:
9.根據(jù)權(quán)利要求8所述的消息處理方法,其特征在于,所述方法還包括:
10.根據(jù)權(quán)利要求9所述的消息處理方法,其特征在于,按照所述分組數(shù)量對第一數(shù)量個(gè)所述服務(wù)組件進(jìn)行分組,得到多個(gè)服務(wù)組件組合,包括:
11.根據(jù)權(quán)利要求9所述的消息處理方法,其特征在于,所述方法還包括:
12.根據(jù)權(quán)利要求9所述的消息處理方法,其特征在于,所述方法還包括:
13.根據(jù)權(quán)利要求12所述的消息處理方法,其特征在于,所述方法還包括:
14.根據(jù)權(quán)利要求12所述的消息處理方法,其特征在于,所述方法還包括:
15.一種消息處理方法,其特征在于,應(yīng)用于服務(wù)組件,包括:
16.根據(jù)權(quán)利要求15所述的消息處理方法,其特征在于,所述方法還包括:
17.一種消息處理裝置,其特征在于,應(yīng)用于主服務(wù)組件控制單元,包括:
18.一種消息處理裝置,其特征在于,應(yīng)用于服務(wù)組件,包括:
19.一種電子設(shè)備,其特征在于,包括處理器、通信接口、存儲器和通信總線,其中,處理器,通信接口,存儲器通過通信總線完成相互間的通信;
20.一種計(jì)算機(jī)可讀存儲介質(zhì),其特征在于,所述計(jì)算機(jī)可讀存儲介質(zhì)上存儲有消息處理方法的程序,所述消息處理方法的程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)權(quán)利要求8~14任一所述的消息處理方法,或者,權(quán)利要求15~16任一所述的消息處理方法的步驟。