kafka消費者的三種模式

2022-03-12 09:00:52 字數 652 閱讀 3322

採用預設配置情況下,既不能完全保證at-least-once 也不能完全保證at-most-once;

比如:

在自動提交之後,資料消費流程失敗,這樣就會有丟失,不能保證at-least-once;

資料消費成功,但是自動提交失敗,可能會導致重複消費,這樣也不能保證at-most-once;

但是將自動提交時長設定得足夠小,則可以最大限度地保證at-most-once;

at most onece模式

基本思想是保證每一條訊息commit成功之後,再進行消費處理;

設定自動提交為false,接收到訊息之後,首先commit,然後再進行消費

at least onece模式

基本思想是保證每一條訊息處理成功之後,再進行commit;

設定自動提交為false;訊息處理成功之後,手動進行commit;

採用這種模式時,最好保證消費操作的「冪等性」,防止重複消費;

exactly onece模式

核心思想是將offset作為唯一id與訊息同時處理,並且保證處理的原子性;

設定自動提交為false;訊息處理成功之後再提交;

比如對於關係型資料庫來說,可以將id設定為訊息處理結果的唯一索引,再次處理時,如果發現該索引已經存在,那麼就不處理;

kafka 三種消費模式

自動提交offset 以下例項 展示了如何自動提交topic的offset public void autooffsetcommit properties的例項props中存放的key意義 1 bootstrap.servers表示要連線的kafka集群中的節點,其中9092表示埠號 2 group...

Kafka之 三種消費模式

以下例項 展示了如何自動提交topic的offset public void autooffsetcommit properties的例項props中存放的key意義 1 bootstrap.servers表示要連線的kafka集群中的節點,其中9092表示埠號 2 group.id表示kafka消...

kafka 主動消費 Kafka消費者的使用和原理

publicstaticvoidmain string args finally 前兩步和生產者類似,配置引數然後根據引數建立例項,區別在於消費者使用的是反序列化器,以及多了乙個必填引數 group.id,用於指定消費者所屬的消費組。關於消費組的概念在 kafka中的基本概念 中介紹過了,消費組使得...