[發明專利]實現分布式消息隊列的方法及系統有效
| 申請號: | 201210121974.6 | 申請日: | 2012-04-24 |
| 公開(公告)號: | CN103379021B | 公開(公告)日: | 2017-02-15 |
| 發明(設計)人: | 韓銀俊;高洪;丁巖 | 申請(專利權)人: | 中興通訊股份有限公司 |
| 主分類號: | H04L12/58 | 分類號: | H04L12/58 |
| 代理公司: | 深圳市世紀恒程知識產權代理事務所44287 | 代理人: | 胡海國 |
| 地址: | 518057 廣東省深圳市南山*** | 國省代碼: | 廣東;44 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 實現 分布式 消息 隊列 方法 系統 | ||
技術領域
本發明涉及移動通信技術應用領域,更具體地,涉及一種實現分布式消息隊列的方法及系統。
背景技術
消息隊列是一種消息交互機制,用于線程間、進程間不同的主機節點間消息的發送和接收。分布式消息隊列是指基于分布式架構構建的消息隊列系統,用于不同的主機節點間的消息交互。
分布式消息隊列是分布式系統的基礎組件,其主要起子系統間解耦合、使系統的結構靈活、網絡屏蔽以及削峰填谷等作用,其在移動互聯網中應用尤其廣泛,包括微博,社區,美食,購物等與人們生活密切相關的一些應用。因為這些應用的用戶量巨大,因此對分布式消息隊列提出了更高的要求,具體包括消息數量的要求以及可擴展性要求等。例如,分布式消息隊列系統能夠支持的隊列數,以及隊列中消息數應當是海量的,沒有限制;并且消息的容量和性能不能滿足要求時,可通過擴展消息隊列服務端節點進行線性的擴展,消息隊列的擴展對應用是透明的,對于已部署的應用,應用應該感知不到消息隊列的擴展;
現有的消息隊列系統中,消息隊列存放在消息隊列服務端的內存中或者消息隊列服務端的硬盤中,由于內存或硬盤均有大小限制,所以以上幾點都是目前的消息隊列系統中難以解決的幾個要求,現有的分布式消息隊列技術尚不能同時滿足以上幾點要求。
發明內容
本發明的主要目的在于提供一種實現分布式消息隊列的方法,旨在解決現有的分布式系統無法滿足擴展性和消息數量要求的缺陷。
為了實現發明目的,本發明提供一種實現分布式消息隊列的方法,其特征在于,包括以下步驟:
消息隊列客戶端向消息隊列服務端發送消息發送請求;
消息隊列服務端根據所述消息發送請求生成消息ID;
消息隊列客戶端將所有的消息按照所述消息ID進行哈希運算,根據得到的哈希值將消息存儲到消息隊列服務端的不同節點中;
消息隊列服務端存儲所述消息,根據預置的消息訂閱規則將消息發送至消息接收端;或者在有消息接收端關注消息時,提示消息接收端接收消息,并根據消息接收端的請求向消息接收端發送消息。
優選地,所述根據得到的哈希值將消息存儲到消息隊列服務端的不同節點中進一步包括:
將消息的索引存放在消息隊列服務端節點的內存中,消息的內容存放在消息隊列服務端節點的磁盤中。
優選地,所述節點包括輔節點及協同器,所述協同器用于與消息隊列客戶端及輔節點進行數據交互;所述消息隊列服務端根據消息發送請求生成消息ID包括:
協同器接收到消息隊列客戶端發送的N個消息發送請求的頭指針后,從本地讀消息隊列所在的摘要/內容K/V對,并發送讀請求至輔節點;
輔節點收到所述讀請求后,從本地讀消息隊列并將結果反饋給協同器;
協同器接收到輔節點返回的足夠的消息隊列后,從中選取最新的K/V;
協同器將最新的K/V中的消息屬性轉換為消息ID,并對其中的頭指針+N后將結果轉換回新的消息屬性;
協同器本地保存K/V對并發送寫請求至輔節點,以更新數據;
輔節點更新數據后將結果反饋給協同器;
協同器收到足夠的回應后合并結果并發送給消息隊列客戶端。
優選地,所述根據消息接收端的請求向消息接收端發送消息包括:
協同器接收到消息隊列客戶端發送的N個消息發送請求的尾指針后,先從本地讀消息隊列所在K/V對,并發送讀請求至輔節點;
輔節點收到讀請求后從本地讀消息隊列并將結果返回協同器;
協同器接收到輔節點返回的足夠的消息隊列后,從中選取最新的K/V;
協同器將最新的K/V中的消息屬性轉換為消息ID,并對其中的頭指針+N后將結果轉換回新的消息屬性;
協同器本地保存K/V對,并發送寫請求至輔節點,以更新數據;
輔節點更新數據后將結果返回協同器;
協同器收到足夠的回應后合并結果返回消息隊列客戶端;
消息接收端根據接收到的消息ID,請求從消息隊列服務端接收消息。
優選地,在所述提示消息接收端接收消息之后還包括:消息接收端根據接收到的消息ID,請求從消息隊列服務端接收消息。
本發明提供一種實現分布式消息隊列的系統,其包括消息隊列服務端和消息隊列客戶端,其中,所述消息隊列客戶端包括:
發送模塊,用于向消息隊列服務端發送消息發送請求;
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中興通訊股份有限公司,未經中興通訊股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201210121974.6/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:新型OLED模組、OLED模組產品及OLED顯示器
- 下一篇:跨坐型車輛





