当Kafka事件过期时,相关消费者的延迟会被卡住吗?

wnvonmuf  于 2021-06-07  发布在  Kafka
关注(0)|答案(2)|浏览(339)

假设没有更多的kafka事件在中发布,当kafka代理中保留的所有以前的kafka事件由于保留而过期,并且相关的使用者尚未完成对所有事件的消费时,相关的kafka使用者延迟是否会被给定的分区卡住?

piztneat

piztneat1#

虽然代码:(kafka 0.9 consumer)在创建新的consumer时定义了resetstrategy

public enum OffsetResetStrategy {
    LATEST, EARLIEST, NONE
}

所以,如果抵消超出范围,比康斯默继续阅读根据该政策

6pp0gazn

6pp0gazn2#

流程如下:
假设当前偏移量为100,但由于保留策略,最早可用的偏移量为110。
您的消费者发送一个fetchrequest,请求来自偏移量100的消息。
Kafka返回一个错误( OFFSET_OUT_OF_RANGE 准确地说)。
消费者对此错误的React是发送一个offsetrequest,指定它要重置为哪个值,比如说在您的情况下它是 EARLIEST .
kafka返回一个offsetresponse,在您的例子中是110。
您的消费者强制将当前偏移量设置为110,然后再次开始获取。

相关问题