ack如何在Kafka中用于发布/订阅?

问题描述 投票:0回答:1

使用发布/订阅如何确认消息?

[当消息以唯一的组发送给某些消费者时。这是否表示所有消费者都确认了消息或所有消费者都确认了消息?

apache-kafka kafka-consumer-api kafka-producer-api
1个回答
0
投票

制作人

在生产者端,您可以选择等待代理确认消息已成功存储在主题中。您可以使用名为acks的Producer配置并将其设置为1all值:

acks = 1:这意味着领导者会将记录写入其本地日志,但会在不等待所有关注者的完全确认的情况下做出响应。在这种情况下,如果领导者在确认记录后立即失败,但在追随者复制记录之前失败,则记录将丢失。

acks = all:这意味着领导者将等待整套同步副本确认记录。这保证了只要至少一个同步副本仍处于活动状态,记录就不会丢失。这是最有力的保证。这等效于acks = -1设置。

消费者

在消费者方面,您具有Consumer Group的概念,这些概念正在将偏移提交给代理,以确认消费者已处理哪些消息。每个消费者组将提交自己的抵消额,以确认是否消费了它们。这独立于其他消费者群体。

如果您有两个使用同一主题的消费者组,则每个消费者组将根据其各自的配置独立地提交其偏移量。

默认情况下,使用者通过使用者配置enable.auto.commitauto.commit.interval.ms将偏移量自动提交回Kafka,默认为5秒。或者,您可以根据使用者内的处理逻辑手动提交偏移量。

© www.soinside.com 2019 - 2024. All rights reserved.