kafka學習之監聽方式實現消費者

1.kafka監聽接口主要有四個實現以下:code

MessageListener接口:使用MessageListener接口實現時,當消費者拉取消息以後,消費完成會自動提交offset,即enable.auto.commit爲true時,適合使用此接口 接口

AcknowledgingMessageListener接口:使用AcknowledgeMessageListener時,當消費者消費一條消息以後,不會自動提交offset,須要手動ack,即enable.auto.commit爲false時,適合使用此接口kafka

BatchMessageListener和BatchAcknowledgingMessageListener接口做用與上述兩個接口大致相似,只是適合批量消費消息決定是否自動提交offset。it

2.kafka的consumer的提交模式List

AckMode能夠選擇的提交模式有一下幾種:im

  • RECORD
    每處理一條commit一次
  • BATCH(默認)
    每次poll的時候批量提交一次,頻率取決於每次poll的調用頻率
  • TIME 
    每次間隔ackTime的時間去commit(跟auto commit interval有什麼區別呢?)
  • COUNT 
    累積達到ackCount次的ack去commit
  • COUNT_TIME
    ackTime或ackCount哪一個條件先知足,就commit
  • MANUAL
    listener負責ack,可是背後也是批量上去
  • MANUAL_IMMEDIATE listner負責ack,每調用一次,就當即commit
相關文章
相關標籤/搜索