[發明專利]消息處理方法及裝置有效
| 申請號: | 201811407856.5 | 申請日: | 2018-11-23 |
| 公開(公告)號: | CN109684099B | 公開(公告)日: | 2020-12-25 |
| 發明(設計)人: | 黃明瑞;李日光 | 申請(專利權)人: | 新華三大數據技術有限公司 |
| 主分類號: | G06F9/54 | 分類號: | G06F9/54;H04W8/18 |
| 代理公司: | 北京林達劉知識產權代理事務所(普通合伙) 11277 | 代理人: | 劉新宇 |
| 地址: | 450000 河南省鄭州市高新技*** | 國省代碼: | 河南;41 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 消息 處理 方法 裝置 | ||
本公開涉及一種消息處理方法及裝置,包括接收到指定主題的消息時,按照所述消息到達生產緩存區的順序和所述指定主題的批次容量,為所述消息分配批次號;在所述生產緩存區中所述批次號對應的消息的數量達到所述批次容量時,將所述批次號對應的消息按照消息到達所述生產緩存區的順序寫入所述批次號對應的分區中;從所述指定主題對應的各分區中分別獲取指定數量的批次的消息;按照批次號的分配順序,分批向消費者提交獲取到的指定數量的批次的消息。通過分批處理消息,根據本公開實施例的消息處理方法及裝置既能夠保證消息的全局順序消費,又提升了Kafka集群的利用率。
技術領域
本公開涉及大數據技術領域,尤其涉及一種消息處理方法及裝置。
背景技術
Kafka是一個開源流處理平臺,是一種高吞吐量的分布式發布訂閱消息系統,它可處理消費者規模的網站中的所有動作流數據。
消息隊列是一種應用程序與應用程序的通信方法。在應用架構設計時,可以使用消息隊列實現不同組件的對接,協調不同組件的消息吞吐能力,Kafka作為高性能分布式消息隊列具有高效的消息生產能力和消息消費能力。
Kafka可以以集群的方式分布在多個節點上運行,每個節點上的Kafka可以稱為一個代理(broker)。Kafka可以給消息設定一個主題(topic)。Kafka的每個主題可以由多個分區(partition)組成,每個分區都是磁盤上的一個目錄,用來實際存放屬于該主題的消息。
相關技術中,一個主題采用多個分區實現消息的生產和消費時,無法確定從不同分區消費出來的消息的順序,無法實現消息的全局順序消費。一個主題采用一個分區,或者一個主題采用多個分區且指定一個用于生產和消費消息的分區時,可以實現消息的全局順序消費。然而,上述兩種方式在消息的生產和消息時均是利用一個分區,限制了消息生產和消費的性能,無法充分發揮分布式集群的優勢,Kafka集群的利用率較低。
發明內容
有鑒于此,本公開提出了一種消息處理方法及裝置,既能夠保證消息的全局順序消費,又提升了Kafka集群的利用率。
根據本公開的一方面,提供了一種消息處理方法,包括:接收到指定主題的消息時,按照所述消息到達生產緩存區的順序和所述指定主題的批次容量,為所述消息分配批次號;所述批次容量為一個批次包含的消息的數量,所述批次號用于標識消息所屬的批次;在所述生產緩存區中所述批次號對應的消息的數量達到所述批次容量時,將所述批次號對應的消息按照消息到達所述生產緩存區的順序寫入所述批次號對應的分區中;從所述指定主題對應的各分區中分別獲取指定數量的批次的消息;按照批次號的分配順序,分批向消費者提交獲取到的指定數量的批次的消息。
根據本公開的另一方面,提供了一種消息處理裝置,包括:分配模塊,用于接收到指定主題的消息時,按照所述消息到達生產緩存區的順序和所述指定主題的批次容量,為所述消息分配批次號;所述批次容量為一個批次包含的消息的數量,所述批次號用于標識消息所屬的批次;寫入模塊,用于在所述生產緩存區中所述批次號對應的消息的數量達到所述批次容量時,將所述批次號對應的消息按照消息到達所述生產緩存區的順序寫入所述批次號對應的分區中;獲取模塊,用于從所述指定主題對應的各分區中分別獲取指定數量的批次的消息;提交模塊,用于按照批次號的分配順序,分批向消費者提交獲取到的指定數量的批次的消息。
在本公開實施例中,在消息生產時,按照消息到達生產緩存區的順序和批次容量,為具有多個分區的主題的消息指定批次號,通過將所述生產緩存區中一個批次的消息,寫入與該批次的批次號對應的分區中,使得同一主題的消息分布在不同的分區中提升了Kafka集群的利用率,通過在消費時,按照批次號的分配順序,分批向消費者提交獲取到的消息,使得同一主題的消息的消費順序與生產順序一致,保證了消息的全局順序消費。因此,根據本公開各方面實施例的消息處理方法及裝置,既能夠保證消息的全局順序消費,又提升了Kafka集群的利用率。
根據下面參考附圖對示例性實施例的詳細說明,本公開的其它特征及方面將變得清楚。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于新華三大數據技術有限公司,未經新華三大數據技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201811407856.5/2.html,轉載請聲明來源鉆瓜專利網。





