kafka學習十三 消費者消費資料

2021-10-23 17:26:17 字數 688 閱讀 7252

由於自動提交是每隔一段時間提交一次,假如消費者拉到一批資料,剛處理一部分就提交了,然後掛掉了,這個時候未消費的那批資料就徹底丟失了,因為offset已經提交了,不會重新消費。

同樣的,消費者拉到一批資料,剛處理一部分沒有提交,然後掛掉了,這個時候已經消費的那批訊息會被再次消費。

手動消費只會造成訊息重複,不會造成訊息丟失,訊息重複原因和自動提交原因一樣

public static kafkaconsumergetconsumer()
private kafkaconsumerconsumer = kafkautil.getconsumer();

public void receivemsg(string topic)

log.info("receive msg size:{}", records.count());

for (consumerrecordrecord : records) , value:{}, partition:{}, offset:{}",

record.key(), record.value(), record.partition(), record.offset());

}consumer.commitasync((map, e) -> , e:", map, e);

}});

}}

kafka消費者無法消費異常

今天被乙個kafka消費異常折磨了一天,頭差點炸了,還好最後解決了它 異常 伺服器 record is corrupt 記錄損壞 不明原因 有可能磁碟空間不足導致 導致消費者無法正常消費訊息 卡在某乙個offset 不能繼續消費 解決辦法 先停掉消費者程式 殺掉程序 不可關閉kafka服務 然後手動...

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

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

十 kafka複雜消費者

注意 對於多個partition和多個consumer 1 如果consumer比partition多,是浪費,因為kafka的設計是在乙個partition上是不允許併發的,所以consumer數不要大於partition數 2 如果consumer比partition少,乙個consumer會對...