[發明專利]消息隊列系統以及實現消息通信的方法有效
| 申請號: | 201510413284.1 | 申請日: | 2015-07-14 |
| 公開(公告)號: | CN107038075B | 公開(公告)日: | 2020-12-25 |
| 發明(設計)人: | 張俊;何樂;張杰 | 申請(專利權)人: | 阿里巴巴集團控股有限公司 |
| 主分類號: | G06F9/54 | 分類號: | G06F9/54 |
| 代理公司: | 北京三友知識產權代理有限公司 11127 | 代理人: | 李輝 |
| 地址: | 英屬開曼群島大開曼*** | 國省代碼: | 暫無信息 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 消息 隊列 系統 以及 實現 通信 方法 | ||
本申請實施例公開了一種消息隊列系統。該系統包括:第一緩沖區、第二緩沖區和持久化存儲區;第一緩沖區和第二緩沖區位于消息生產者和消息消費者所在的服務器的內存中,第二緩沖區包括主緩沖區和備緩沖區;第一緩沖區用于緩存消息生產者推送的消息,并存儲在持久化存儲區中,將已存儲到持久化存儲區的消息發送給第二緩沖區;持久化存儲區用于對第一緩沖區發送的消息進行持久化存儲;備緩沖區用于緩存第一緩沖區發送的消息;主緩沖區用于將自身的消息傳遞給消息消費者,在將自身的消息全部傳遞給消息消費者之后,與備緩沖區進行主備切換。通過本申請,可以提高消息在消息隊列系統中傳輸的實時性。本申請實施例還公開了一種實現消息通信的方法。
技術領域
本申請涉及計算機領域,特別是涉及消息隊列系統以及實現消息通信的方法。
背景技術
在計算機系統中,消息隊列是實現不同進程間通信或者同一進程中的不同線程間通信的一種重要方式。也就是說,不同的進程之間或不同的線程之間在消息隊列中完成消息傳輸。
在現有的相關技術中,已經存在多種關于消息隊列系統的實現方案。其中一個方案為,消息隊列系統由進程(或線程)所在的服務器上的緩存區以及本地磁盤構成。其中,先將消息生產者推送的消息存儲在該緩存區中,當該緩存區中的消息個數達到配置值或者消息的發布時間超過閾值時,再將該緩存區中的消息存儲到本地磁盤中,以保證消息的可靠性。并且只有存儲到本地磁盤中的消息才可以被進一步傳遞給消息消費者。另外,由于本地磁盤的存儲空間有限,存儲在本地磁盤中的消息無論是否被傳遞給消息消費者,其在保留一定時間后就會被刪除,以便釋放本地磁盤的存儲空間。所謂“可靠性”就是指,消息生產者推送到消息隊列系統中的消息不丟失,即使消息隊列系統故障也可以被恢復;并且,消息在未被傳遞給消息消費者之前可以一直保存在消息隊列系統中,直到被傳遞給消息消費者為止。
在第一個方案中,只有位于本地磁盤的消息才可以被傳遞給消息消費者,而消息在被存儲到本地磁盤之前,還必須先被存儲在緩存區中,因此,消息傳輸的實時性會比較差。并且,消息是從本地磁盤傳遞給消息消費者的,受到本地磁盤的IO操作速度的影響,消息傳輸的實時性就會更差。另外,由于本地磁盤中的消息會被定期刪除,因此消息的可靠性也非常差。
另一個方案為:消息隊列系統由進程(或線程)所在的服務器上的內存以及位于該服務器外部的數據庫構成。其中,先將消息生產者推送的消息存儲在內存中,再將消息從內存中傳遞給消息消費者。并且,為了保證消息的可靠性,還將內存中的消息存儲到數據庫中。顯然,在第二個方案中,消息直接從內存傳遞到消息消費者,并且,內存的IO操作速度比本地磁盤的IO操作速度快,因此,相較于第一個方案,消息傳輸的實時性更好。另外,由于數據庫的存儲空間比較大,存儲在數據庫中的消息不會被定期刪除,因此,相較于第一個方案,消息的可靠性也更好。
但是,在實現本申請的過程中,本申請的發明人發現現有技術中至少存在如下問題:雖然在第二個方案中,內存的IO操作速度比較快,使其消息在消息隊列系統中傳輸的實時性相較于第一個方案好。但是,由于內存不支持同時執行讀/寫操作,因此,在將消息生產者推送的消息存儲在內存中的同時,就不能將消息從內存中傳遞給消息消費者,這樣會很大程度地影響消息傳輸的實時性。
另外,在第二個方案中,如果消息消費者無法正常地從消息隊列系統接收消息或者只能以很慢的速度接收消息,并且消息生產者生產消息的速度又非常快,這樣就會有越來越多的消息占滿內存,嚴重時會發生內存溢出。當發生內存溢出時,溢出的消息會被丟棄掉,以至于溢出的消息無法正常傳遞給消息消費者。
發明內容
為了解決上述技術問題,本申請實施例提供了消息隊列系統、以及實現消息通信的方法,以解決現有技術中由于內存不支持同時執行讀/寫操作而影響消息在消息隊列系統中傳輸的實時性的問題。另外,進一步解決現有技術中由于消息隊列系統中的內存發生內存溢出而導致溢出的消息無法正常地被傳遞給消息消費者的問題。
本申請實施例公開了如下技術方案:
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于阿里巴巴集團控股有限公司,未經阿里巴巴集團控股有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201510413284.1/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:室內定位裝置、方法和系統
- 下一篇:一種數據恢復方法和裝置





