[發明專利]位點提交方法和裝置有效
| 申請號: | 201811073744.0 | 申請日: | 2018-09-14 |
| 公開(公告)號: | CN110912949B | 公開(公告)日: | 2022-11-08 |
| 發明(設計)人: | 方琪 | 申請(專利權)人: | 北京京東尚科信息技術有限公司;北京京東世紀貿易有限公司 |
| 主分類號: | H04L67/10 | 分類號: | H04L67/10;H04L67/51;H04L67/30 |
| 代理公司: | 中原信達知識產權代理有限責任公司 11219 | 代理人: | 張一軍;張效榮 |
| 地址: | 100195 北京市海淀區杏石口路6*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 提交 方法 裝置 | ||
本發明公開了一種位點提交方法和裝置,涉及計算機技術領域。其中,該方法包括:步驟1:對于分配給消費實例的每個分區,將該分區中被所述消費實例最新消費的消息的描述信息進行保存;所述消息的描述信息包括:消息的位點、消息的進入時間;步驟2:在位點提交事件被觸發后,判斷該分區中被所述消費實例最新消費的消息的進入時間與當前時間的差值絕對值是否不超過超時時間閾值;步驟3:若是,則將該分區中被所述消費實例最新消費的消息的位點提交至服務端。通過以上步驟,能夠在批量消費后再手動提交一次位點的情況下,既能保證服務端中各個分區的位點不會出現深度重置的情況,又能保證客戶端正常消費消息。
技術領域
本發明涉及計算機技術領域,尤其涉及一種位點提交方法和裝置。
背景技術
在計算機技術領域,消息隊列已經成為一種常用的技術手段。作為消息隊列中的代表,Kafka的應用更加廣泛。
Kafka是一種高吞吐量的分布式發布訂閱消息系統,其通過位點提交的機制保證單分區內的消息消費順序。所述位點,可理解為一個用于定位分區中的每一個消息的序列號。所述位點提交,可理解為作為消費實例將其對消息的消費進度情況匯報給服務端。所述消費實例是指用于消費消息的客戶端的實例(instance),也可稱為用于消費消息的應用程序實例(instance)。通常,一臺機器可以部署一個或多個消費實例。
Kafka的位點提交方式主要有兩種:自動提交位點和手動提交位點。自動提交位點,是指消費實例按照Kafka的配置情況,自動將位點報告給服務端。手動提交位點,是指消費實例通過代碼將位點報告給服務端。在手動提交位點方式中,具體什么時候報告、報告什么值,都由消費實例決定。
Kafka可通過Zookeeper進行負載均衡管理。在消費實例數量發生動態變化(比如有的消費實例崩潰,或者有新的消費實例加入集群) 時,會觸發再均衡(rebalance)功能,進而可能產生分區漂移現象。所謂分區漂移,是指一個分區原本是在一個消費實例上消費,后來飄移到另一消費實例上消費的情況。分區飄移可能導致服務端中的位點被往前重置很多,即深度重置的情況出現。例如,假設Topic1有四個分區“Partition[0]至Partition[3]”,對應這四個分區,有四個消費實例“消費實例[0]至消費實例[3]”。在剛開始啟動消費的時候,由于消費實例啟動的先后順序,Partition[3]中的消息先被消費實例[2]消費,消費實例[2]會把消費的Partition[3]中的消息的位點123記錄起來。在四個消費實例都啟動后,Partition[3]飄移到了消費實例[3]中,四個分區的分配結果為:將Partition[0]分配給消費實例[0]、Partition[1]分配給消費實例[1]、Partition[2]分配給消費實例[2]、Partition[3]分配給消費實例[3]。在消費消息一段時間后,由于Partition[3]一直被消費實例[3]消費,假設消費實例[3]提交的Partition[3]中的消息位點達到42342。由于某種原因,消費集群需要停止消費。假設消費實例[2]在停止之前正好需要提交一次位點,在本次提交位點時,其除了會提交Partition[2]中的消息的位點,還會把曾經消費過的Partition[3]中的消息的位點123提交至服務端,從而服務端中Partition[3]的消息位點從42342被重置到123。
在實現本發明過程中,發明人發現現有技術中至少存在如下問題:在對消息進行批量消費并手動提交位點的情況下,由于Kafka的分區飄移,可能導致位點提交錯誤,使得服務端中的位點被往前重置很多,即深度重置的情況出現,這個問題會給消費消息的客戶端(簡稱“消費端”)帶來很大的困擾和麻煩。
發明內容
有鑒于此,本發明提供一種位點提交方法和裝置,能夠在批量消費后再手動提交一次位點的情況下,既能保證服務端中各個分區的位點不會出現深度重置的情況,又能保證客戶端正常消費消息。
為實現上述目的,根據本發明的一個方面,提供了一種位點提交方法。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京京東尚科信息技術有限公司;北京京東世紀貿易有限公司,未經北京京東尚科信息技術有限公司;北京京東世紀貿易有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201811073744.0/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種數據查詢方法和裝置
- 下一篇:晶片清洗裝置及清洗方法





