System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術涉及一種基于mqtt協議的即時通訊系統在集群時的定向通信方法,屬于即時通訊。
技術介紹
1、對于即時通訊系統來說,如果基于mqtt協議的即時通訊系統只使用單節點的后端broker服務,因為底層使用的是tcp/ip協議,那么同時在線用戶數量(也即是后端broker服務持有的連接數)會受單個服務器的cpu/內存/最大連接數等諸多限制。如果通過不斷增加broker服務節點的服務器配置來適配日益增長的企業或商業應用業務及用戶量,那么所花費的價格是十分昂貴且與收益不成正比的。如果僅僅是部署多個broker服務節點,不同的用戶連接至不同的后端broker服務,也即是各個后端broker服務僅持有連接至本服務節點的用戶連接,所以該服務節點無法知曉其他服務持有連接的用戶會話狀態等信息,并且該服務節點也無法通過連接向用戶發送消息。
2、當一個基于mqtt協議的即時通訊系統部署了多個broker服務節點并組成broker服務集群時,這些broker服務節點會進行相互通信,當有消息需要轉發時,一個broker服務節點會發布消息到redis主題中,剩余所有的broker服務節點都會接收到該消息,并嘗試進行處理。特別是當即時通訊系統處于使用高峰時,巨量的消息會在網絡中被轉發,不僅會造成網絡流量成倍地增加,而且broker服務也會因為需要接收并判斷以丟棄的消息而造成性能損耗,同時這兩個不良后果還會進一步造成即時通訊系統無法及時地處理持續不斷的用戶消息,甚至形成雪崩效應,導致系統崩潰無法正常為用戶提供服務。
3、一種常規的方
技術實現思路
1、為了解決上述現有技術中存在的問題,本專利技術提出了一種基于mqtt協議的即時通訊系統在集群時的定向通信方法。
2、本專利技術的技術方案如下:
3、一方面,本專利技術提出了一種基于mqtt協議的即時通訊系統在集群時的定向通信方法,包括以下步驟:
4、為即時通訊系統中broker集群中的每個broker服務節點設置唯一編號;
5、每個broker服務節點將連接用戶與其唯一編號的映射關系儲存至儲存組件中;
6、當用戶發送消息至另一用戶時,消息發送方對應的broker服務節點判斷消息發送方與消息接收方是否與同一broker服務節點連接,若與同一broker服務節點連接,則直接將消息發送至消息接收方;
7、若未與同一broker服務節點連接,則通過儲存組件中的映射關系查詢消息接收方所連接的broker服務節點,并通過發布/訂閱組件將消息下發至對應broker服務節點,消息接收方所連接的broker服務節點再將信息發送至消息接收方。
8、作為本專利技術的優選實施方式,所述每個broker服務節點在啟動過程中生成一個隨機字符串作為唯一編號,并訂閱發布/訂閱組件中以該唯一編號為主題名稱的主題。
9、作為本專利技術的優選實施方式,所述每個broker服務節點將其與所有用戶的映射關系儲存于本地內存。
10、作為本專利技術的優選實施方式,所述消息發送方對應的broker服務節點通過其本地內存中儲存的映射關系判斷消息接收方是否與同一broker服務節點連接。
11、另一方面,本專利技術還提供了一種基于mqtt協議的即時通訊系統在集群時的定向通信系統,包括broker初始化模塊、映射關系存儲模塊、通信連接判斷模塊以及通信模塊;
12、所述broker初始化模塊用于為即時通訊系統中broker集群中的每個broker服務節點設置唯一編號;
13、所述映射關系存儲模塊用于將每個broker服務節點將連接用戶與其唯一編號的映射關系儲存至儲存組件中;
14、所述通信連接判斷模塊用于判斷消息發送方與消息接收方是否與同一broker服務節點連接;
15、所述通信模塊用于基于信連接判斷模塊的判斷結果進行消息發送,具體為:若消息發送方以及消息接收方與同一broker服務節點連接,則直接通過broker服務節點將消息發送至消息接收方,若消息發送方以及消息接收方未與同一broker服務節點連接,則通過儲存組件中的映射關系查詢消息接收方所連接的broker服務節點,并通過發布/訂閱組件將消息下發至對應broker服務節點,消息接收方所連接的broker服務節點再將信息發送至消息接收方。
16、作為本專利技術的優選實施方式,所述每個broker服務節點在啟動過程中生成一個隨機字符串作為唯一編號,并訂閱發布/訂閱組件中以該唯一編號為主題名稱的主題。
17、作為本專利技術的優選實施方式,所述每個broker服務節點將其與所有用戶的映射關系儲存于本地內存。
18、作為本專利技術的優選實施方式,所述消息發送方對應的broker服務節點通過其本地內存中儲存的映射關系判斷消息接收方是否與同一broker服務節點連接。
19、另一方面,本專利技術還提供一種電子設備,包括存儲器、處理器及存儲在存儲器上并可在處理器上運行的計算機程序,所述處理器執行所述程序時實現如本專利技術任一實施例所述的方法。
20、再一方面,本專利技術還提供一種計算機可讀存儲介質,其上存儲有計算機程序,該程序被處理器執行時實現如本專利技術任一實施例所述的方法。
21、本專利技術具有如下有益效果:
22、1、本專利技術通過統一的存儲組件存儲用戶與broker服務節點的映射關系,方便集群環境的多個broker服務節點均能獲取要所有用戶連接的broker服務節點編號,通過定向地轉發消息至指定的broker服務節點,可以大幅地降低網絡流量,降低非目標broker服務節點的性能損耗,避免可能的雪崩效應,提高系統的處理效率及網絡吞吐量,增強系統穩定性。
本文檔來自技高網...【技術保護點】
1.一種基于MQTT協議的即時通訊系統在集群時的定向通信方法,其特征在于,包括以下步驟:
2.根據權利要求1所述的一種基于MQTT協議的即時通訊系統在集群時的定向通信方法,其特征在于,所述每個Broker服務節點在啟動過程中生成一個隨機字符串作為唯一編號,并訂閱發布/訂閱組件中以該唯一編號為主題名稱的主題。
3.根據權利要求1所述的一種基于MQTT協議的即時通訊系統在集群時的定向通信方法,其特征在于,所述每個Broker服務節點將其與所有用戶的映射關系儲存于本地內存。
4.根據權利要求3所述的一種基于MQTT協議的即時通訊系統在集群時的定向通信方法,其特征在于,所述消息發送方對應的Broker服務節點通過其本地內存中儲存的映射關系判斷消息接收方是否與同一Broker服務節點連接。
5.一種基于MQTT協議的即時通訊系統在集群時的定向通信系統,其特征在于,包括Broker初始化模塊、映射關系存儲模塊、通信連接判斷模塊以及通信模塊;
6.根據權利要求1所述的一種基于MQTT協議的即時通訊系統在集群時的定向通信系統,其特征在于
7.根據權利要求1所述的一種基于MQTT協議的即時通訊系統在集群時的定向通信系統,其特征在于,所述每個Broker服務節點將其與所有用戶的映射關系儲存于本地內存。
8.根據權利要求7所述的一種基于MQTT協議的即時通訊系統在集群時的定向通信系統,其特征在于,所述消息發送方對應的Broker服務節點通過其本地內存中儲存的映射關系判斷消息接收方是否與同一Broker服務節點連接。
9.一種電子設備,包括存儲器、處理器及存儲在存儲器上并可在處理器上運行的計算機程序,其特征在于,所述處理器執行所述程序時實現如權利要求1至4任一項所述的方法。
10.一種計算機可讀存儲介質,其上存儲有計算機程序,其特征在于,該程序被處理器執行時實現如權利要求1至4任一項所述的方法。
...【技術特征摘要】
1.一種基于mqtt協議的即時通訊系統在集群時的定向通信方法,其特征在于,包括以下步驟:
2.根據權利要求1所述的一種基于mqtt協議的即時通訊系統在集群時的定向通信方法,其特征在于,所述每個broker服務節點在啟動過程中生成一個隨機字符串作為唯一編號,并訂閱發布/訂閱組件中以該唯一編號為主題名稱的主題。
3.根據權利要求1所述的一種基于mqtt協議的即時通訊系統在集群時的定向通信方法,其特征在于,所述每個broker服務節點將其與所有用戶的映射關系儲存于本地內存。
4.根據權利要求3所述的一種基于mqtt協議的即時通訊系統在集群時的定向通信方法,其特征在于,所述消息發送方對應的broker服務節點通過其本地內存中儲存的映射關系判斷消息接收方是否與同一broker服務節點連接。
5.一種基于mqtt協議的即時通訊系統在集群時的定向通信系統,其特征在于,包括broker初始化模塊、映射關系存儲模塊、通信連接判斷模塊以及通信模塊;
6.根據權利要...
【專利技術屬性】
技術研發人員:黃浩,楊帆,鄧大建,李軍,唐志文,王玉剛,
申請(專利權)人:四川中電啟明星信息技術有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。