我对Apache Kafka Consumer中的max.poll.records配置有点困惑,因为Apache Kafka中的“恰好一次”语义。根据我的研究,“恰好一次”语义与max.poll.records配置无关。但是如果我设置max.poll.records=1,它会“降低”可能重复的概率和重复的数量吗?
qlvxas9a1#
不,这不会有任何区别,因为exactly once语义主要控制发送给Kafka的数据的事务行为。由于Kafka的分布式本质,它最初支持至少一次(在情况下重试)和最多一次(不重试)语义。下面是Kafka的简单定义
最多一次-消息可能会丢失,但不会重新传递。至少一次-消息不会丢失,但可以重新传递。只发送一次-这是人们真正想要的,每条消息只发送一次。
话虽如此,从消费者的Angular 来看,它是否会轮询1个或多个记录,这并不能保证这些记录是否是重复记录,这完全取决于您在生产者中考虑的交付保证。我强烈建议您阅读下面的文章,这样会让事情变得更清楚
1条答案
按热度按时间qlvxas9a1#
不,这不会有任何区别,因为exactly once语义主要控制发送给Kafka的数据的事务行为。
由于Kafka的分布式本质,它最初支持至少一次(在情况下重试)和最多一次(不重试)语义。
下面是Kafka的简单定义
最多一次-消息可能会丢失,但不会重新传递。
至少一次-消息不会丢失,但可以重新传递。
只发送一次-这是人们真正想要的,每条消息只发送一次。
话虽如此,从消费者的Angular 来看,它是否会轮询1个或多个记录,这并不能保证这些记录是否是重复记录,这完全取决于您在生产者中考虑的交付保证。
我强烈建议您阅读下面的文章,这样会让事情变得更清楚