本發(fā)明屬于消息發(fā)布訂閱,具體而言,尤其涉及消息發(fā)布訂閱系統(tǒng)的建立方法、計算機(jī)介質(zhì)及電子設(shè)備。
背景技術(shù):
1、在軟件架構(gòu)中,發(fā)布和訂閱是一種消息傳遞范式。這種范式中,消息的發(fā)送者(或者稱為發(fā)布者)不會將消息直接發(fā)送給特定的接收者(或者稱為訂閱者)。而是,發(fā)布者將消息發(fā)送到特定的通道,然后由系統(tǒng)將消息轉(zhuǎn)發(fā)給所有訂閱了該通道的訂閱者。
2、相關(guān)技術(shù)的一種消息發(fā)布訂閱方案中,某一節(jié)點接收到消息之后,需要將消息廣播至其他節(jié)點,但是這種方案在跨機(jī)房的集群部署中會產(chǎn)生大量的帶寬傳輸成本。相關(guān)技術(shù)的另一種消息發(fā)布訂閱方案中,將發(fā)布訂閱的頻道按照固定規(guī)則路由到集群中的某一節(jié)點,使得同一頻道方發(fā)布方和訂閱方都連接到同一節(jié)點上,但是這種方案在增減節(jié)點時,發(fā)布方和訂閱方也要重新建立連接,影響業(yè)務(wù)的連續(xù)性。
3、需要說明的是,在上述背景技術(shù)部分公開的信息僅用于加強(qiáng)對本申請的背景的理解,因此可以包括不構(gòu)成對本領(lǐng)域普通技術(shù)人員已知的現(xiàn)有技術(shù)的信息。
技術(shù)實現(xiàn)思路
1、本發(fā)明的目的在于提供了消息發(fā)布訂閱系統(tǒng)的建立方法、計算機(jī)介質(zhì)及電子設(shè)備,用于解決相關(guān)技術(shù)中消息的傳輸成本高,以及業(yè)務(wù)連續(xù)性差的問題。
2、根據(jù)本申請實施例的一個方面,提供一種消息發(fā)布訂閱系統(tǒng)的建立方法,該系統(tǒng)包括:至少一個發(fā)布者、多個節(jié)點和多個訂閱者,節(jié)點之間互不通信;該方法包括:
3、將發(fā)布者和任意一個節(jié)點建立連接;
4、將節(jié)點和訂閱者一一建立連接;
5、控制訂閱者向各個節(jié)點發(fā)起對相同指定頻道的訂閱;
6、響應(yīng)于發(fā)布消息的指示,將指定頻道的消息通過發(fā)布者發(fā)送至所連接的節(jié)點;
7、當(dāng)節(jié)點接收到消息時,將消息推送至訂閱指定頻道的訂閱者。
8、在本申請的一些實施例中,本申請?zhí)峁┑姆椒ㄟ€包括:當(dāng)系統(tǒng)具有新增節(jié)點時,將新增節(jié)點和發(fā)布者建立連接,以及將新增節(jié)點和各個訂閱者建立連接。
9、在本申請的一些實施例中,在將新增節(jié)點和各個訂閱者建立連接之后,本申請?zhí)峁┑姆椒ㄟ€包括:控制各個訂閱者向新增節(jié)點訂閱已在其他節(jié)點訂閱的所有指定頻道。
10、在本申請的一些實施例中,本申請?zhí)峁┑姆椒ㄟ€包括:響應(yīng)于刪除待刪除節(jié)點的指示,將待刪除節(jié)點標(biāo)記為下線狀態(tài)。
11、在本申請的一些實施例中,在將待刪除節(jié)點標(biāo)記為下線狀態(tài)之后,待刪除節(jié)點為下線節(jié)點,本申請?zhí)峁┑姆椒ㄟ€包括:控制發(fā)布者停止向下線節(jié)點發(fā)送消息;關(guān)斷各個訂閱者與下線節(jié)點的連接。
12、在本申請的一些實施例中,在將指定頻道的消息通過發(fā)布者發(fā)送至所連接的節(jié)點之前,本申請?zhí)峁┑姆椒ㄟ€包括:根據(jù)節(jié)點的負(fù)載量或者存儲容量選擇指定頻道的消息對應(yīng)的目標(biāo)節(jié)點。
13、在本申請的一些實施例中,本申請?zhí)峁┑姆椒ㄟ€包括:根據(jù)頻道的第一哈希值和節(jié)點地址的第二哈希值,確定各個頻道對應(yīng)的目標(biāo)節(jié)點。
14、在本申請的一些實施例中,根據(jù)頻道的第一哈希值和節(jié)點地址的第二哈希值,確定各個頻道對應(yīng)的目標(biāo)節(jié)點,包括:計算得到各個頻道的第一哈希值和各個節(jié)點地址的第二哈希值;獲取第一哈希值和第二哈希值的差值更小的目標(biāo)頻道和目標(biāo)節(jié)點;將目標(biāo)頻道和目標(biāo)節(jié)點進(jìn)行綁定。
15、根據(jù)本申請實施例的一個方面,提供一種計算機(jī)介質(zhì),其上存儲有計算機(jī)程序,該計算機(jī)程序被處理器執(zhí)行時實現(xiàn)本申請任意一種實施例提供的消息發(fā)布訂閱系統(tǒng)的建立方法。
16、根據(jù)本申請實施例的一個方面,提供一種電子設(shè)備,包括:處理器;存儲器,用于存儲處理器的可執(zhí)行指令;處理器執(zhí)行可執(zhí)行指令使電子設(shè)備實現(xiàn)本申請任意一種實施例提供的消息發(fā)布訂閱系統(tǒng)的建立方法。
17、在本申請的技術(shù)方案中,消息發(fā)布訂閱系統(tǒng)的建立方法所適用的系統(tǒng)包括:至少一個發(fā)布者、多個節(jié)點和多個訂閱者,以及節(jié)點之間互不通信;該方法包括:將發(fā)布者和任意一個節(jié)點建立連接;將節(jié)點和訂閱者一一建立連接;控制訂閱者向各個節(jié)點發(fā)起對相同指定頻道的訂閱;響應(yīng)于發(fā)布消息的指示,將指定頻道的消息通過發(fā)布者發(fā)送至所連接的節(jié)點;當(dāng)節(jié)點接收到消息時,將消息推送至訂閱指定頻道的訂閱者。如此,可以節(jié)省節(jié)點之間通信所需的網(wǎng)絡(luò)帶寬,而且任意一個節(jié)點和所有訂閱者均已建立連接,不管發(fā)布者將指定頻道的消息發(fā)送到哪個節(jié)點,該節(jié)點都可以將消息推送至訂閱了該指定頻道的訂閱者,無需在節(jié)點之間廣播消息再由設(shè)定節(jié)點進(jìn)行轉(zhuǎn)發(fā);另外,當(dāng)系統(tǒng)中增減節(jié)點時,還有其他節(jié)點可以完成消息的轉(zhuǎn)發(fā),并不會影響業(yè)務(wù)的連續(xù)性。
18、本申請中應(yīng)當(dāng)理解的是,以上的一般描述和后文的細(xì)節(jié)描述僅是示例性和解釋性的,并不能限制本申請。
1.一種消息發(fā)布訂閱系統(tǒng)的建立方法,其特征在于,所述系統(tǒng)包括:至少一個發(fā)布者、多個節(jié)點和多個訂閱者,所述節(jié)點之間互不通信;所述方法包括:
2.如權(quán)利要求1所述的消息發(fā)布訂閱系統(tǒng)的建立方法,其特征在于,所述方法還包括:
3.如權(quán)利要求2所述的消息發(fā)布訂閱系統(tǒng)的建立方法,其特征在于,在將所述新增節(jié)點和各個所述訂閱者建立連接之后,所述方法還包括:
4.如權(quán)利要求1所述的消息發(fā)布訂閱系統(tǒng)的建立方法,其特征在于,所述方法還包括:
5.如權(quán)利要求4所述的消息發(fā)布訂閱系統(tǒng)的建立方法,其特征在于,在將所述待刪除節(jié)點標(biāo)記為下線狀態(tài)之后,所述待刪除節(jié)點為下線節(jié)點,所述方法還包括:
6.如權(quán)利要求1所述的消息發(fā)布訂閱系統(tǒng)的建立方法,其特征在于,在將所述指定頻道的消息通過所述發(fā)布者發(fā)送至所連接的節(jié)點之前,所述方法還包括:
7.如權(quán)利要求1所述的消息發(fā)布訂閱系統(tǒng)的建立方法,其特征在于,所述方法還包括:
8.如權(quán)利要求7所述的消息發(fā)布訂閱系統(tǒng)的建立方法,其特征在于,所述根據(jù)頻道的第一哈希值和節(jié)點地址的第二哈希值,確定各個頻道對應(yīng)的目標(biāo)節(jié)點,包括:
9.一種計算機(jī)可讀介質(zhì),其上存儲有計算機(jī)程序,其特征在于,該計算機(jī)程序被處理器執(zhí)行時實現(xiàn)權(quán)利要求1至8中任意一項所述的消息發(fā)布訂閱系統(tǒng)的建立方法。
10.一種電子設(shè)備,其特征在于,包括: