[發明專利]基于數據庫的分布式消息中間件系統及其運行方法有效
| 申請號: | 201310287640.0 | 申請日: | 2013-07-09 |
| 公開(公告)號: | CN103856393A | 公開(公告)日: | 2014-06-11 |
| 發明(設計)人: | 梁曉靖 | 申請(專利權)人: | 攜程計算機技術(上海)有限公司 |
| 主分類號: | H04L12/58 | 分類號: | H04L12/58;H04L29/08;G06F17/30 |
| 代理公司: | 上海智信專利代理有限公司 31002 | 代理人: | 朱水平;王婧荷 |
| 地址: | 200335 上海市*** | 國省代碼: | 上海;31 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 基于 數據庫 分布式 消息 中間件 系統 及其 運行 方法 | ||
技術領域
本發明涉及一種分布式消息隊列服務,尤其是涉及一種基于數據庫的分布式消息中間件系統以及該分布式消息中間件系統的運行方法。
背景技術
關系型數據庫是企業應用系統常用的數據存儲方案,具有可靠性、可用性、事務、優化的資源競爭等特性,同時由于獲得大量使用的緣故,企業通常都具有豐富的數據庫運維經驗,因而也易于運維和管理。但是關系型數據庫在面對高并發、高吞吐量的業務時性能表現不佳。
消息隊列服務是企業應用之間實現異步通信的常見方案,通常具有異步、高吞吐量、應用解耦等優點。為了支持消息的可靠遞交,消息隊列服務需要將消息進行持久化,但是由于關系型數據庫的先天缺陷,在常用的消息隊列服務系統中持久化方案一般都是自行開發的,很少利用現有的關系數據庫,這大大提高了編程的復雜性,對消息系統的運維和監控也很不方便。而少量使用關系數據庫實現持久化的方案,雖然在編程復雜度和后期運維上有便利性,但是在面對高并發的業務場景時會發生嚴重的性能問題。
發明內容
本發明要解決的技術問題是為了克服現有技術中在利用數據庫實現消息的持久化時,在面對高并發的業務場景時會發生嚴重的性能問題的缺陷,提供一種基于數據庫的分布式消息中間件系統以及該分布式消息中間件系統的運行方法,其結合了數據庫的可靠性、高可用性、事務性和易于運維以及消息隊列服務的異步性和應用解耦性等優點,并且顯著地提高了在面對高并發的業務場景時的運行性能。
本發明是通過下述技術方案來解決上述技術問題:
一種基于數據庫的分布式消息中間件系統,其特點在于,該分布式消息中間件系統包括消息采集組件、數據庫、消息分發組件和消息交換組件,
數據庫中包括消息容器,消息容器通過與數據庫中存有消息的消息表對應而存儲消息;
消息采集組件用于接收來自消息生產者的消息并交給消息交換組件;
消息分發組件用于接收來自消息消費者的消費請求并交給消息交換組件;
消息交換組件用于將來自消息采集組件的消息存入消息容器,還用于根據消費請求從消息容器中讀出消息并交給消息分發組件以供給消息消費者進行消費。
在本發明中,消息交換組件與消息容器之間是相互綁定的,消息交換組件僅向綁定的消息容器中存入消息以及僅從綁定的消息容器中讀出消息。
在消息采集過程中:消息生產者向消息采集組件發送消息,消息中包括有消息交換地址、消息主題以及消息內容等消息數據;消息采集組件根據接收到的消息交換地址選擇消息交換組件,并將消息交給選定的消息交換組件進行處理;被選定的消息交換組件將消息存入消息容器,從而完成采集。
在消息分發過程中:消息消費者向消息分發組件發起消息消費請求,消費請求中包括有消費者標識、消息交換地址、消費的消息主題等信息;消息分發組件根據消息交換地址選擇消息交換組件,并將消費請求交由選定的消息交換組件進行處理;被選定的消息交換組件從綁定的消息容器中取出符合條件的消息,并返回給消息消費者。
消息容器是對數據庫的邏輯劃分,其負責將消息數據持久化保存,以保證消息的可靠性。每個消息容器都與數據庫中的一張存儲有消息的物理數據表(即消息表)對應,因此也可以說,每個消息容器中均存儲有其對應的那一張物理數據表中的所有消息。
本發明中的消息交換組件支持點對點(Queue)消息交換語義和發布/訂閱(pub/sub)消息交換語義,此處與傳統的消息組件內涵相同,故不做贅述。
較佳地,該分布式消息中間件系統還包括生產端消息代理和消費端消息代理,消息生產者通過生產端消息代理與消息采集組件通信,消息消費者通過消費端消息代理與消息分發組件通信。
消息代理主要提供應用集成所必須的數據的遞送、收集、翻譯、過濾、映射和路由等功能,其能夠屏蔽不同的硬件平臺、數據庫、消息格式、通信協議之間的鴻溝與差異,提供應用到應用之間的高效、便捷的通信能力。
較佳地,消息交換組件的數量為一個或多個,每個消息交換組件與一個或多個數據庫中的消息容器綁定,每個數據庫中的消息容器的數量為一個或多個,消息采集組件和/或消息分發組件的數量為一個或多個。
同一個數據庫中多個消息容器的分布能夠分擔不同消息交換地址上的壓力,保證系統平穩運行;當數據庫成為訪問瓶頸時,多個數據庫的分布能夠分擔系統壓力,保證系統平穩運行。而每個消息交換組件則既可以與一個數據庫中的一個或多個消息容器綁定,也可以與多個數據庫中的消息容器(每個數據庫中同樣可以有一個或多個消息容器)綁定。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于攜程計算機技術(上海)有限公司,未經攜程計算機技術(上海)有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310287640.0/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:群組管理的方法及系統
- 下一篇:一種電子設備及應用于電子設備的文件分塊方法





