1. kafka监听接口

  • MessageListener接口:使用MessageListener接口实现时,当消费者拉取消息之后,消费完成会自动提交offset,即enable.auto.commit为true时,适合使用此接口; 
  • AcknowledgingMessageListener接口:使用AcknowledgeMessageListener时,当消费者消费一条消息之后,不会自动提交offset,需要手动ack,即enable.auto.commit为false时,适合使用此接口;
  • BatchMessageListener和BatchAcknowledgingMessageListener接口作用与上述两个接口大体类似,只是适合批量消费消息决定是否自动提交offset。

2. kafka的consumer的提交模式

AckMode可以选择的提交模式有一下几种:

  • RECORD

每处理一条commit一次

  • BATCH(默认)

每次poll的时候批量提交一次,频率取决于每次poll的调用频率

  • TIME 

每次间隔ackTime的时间去commit

  • COUNT 

累积达到ackCount次的ack去commit

  • COUNT_TIME

ackTime或ackCount哪个条件先满足,就commit

  • MANUAL

listener负责ack,但是背后也是批量上去

  • MANUAL_IMMEDIATE

listner负责ack,每调用一次,就立即commit

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐