kafka ack的目的是什么?

voi*_*ipp 0 apache-kafka

kafka 消费者仅在提交时保存偏移量。因此,当它在崩溃后上升时,它可以从先前的偏移量开始。

但是 ack 的目的是什么?如果发生崩溃,ack 将无济于事(如果他们没有提交)

小智 5

确认 = 0

Broker 没有请求任何响应,因此如果 Broker 下线或发生异常,我们将不知道并且会丢失数据。对于可能会丢失作为指标或日志收集的消息的数据很有用。

最好的表现是这样,因为生产者不会等待任何确认。

确认 = 1(默认)

请求领导者响应,但不能保证复制,这发生在后台。如果没有收到确认,生产者可以在没有重复数据的情况下重试。如果领导者代理离线但副本还没有复制数据,我们就会丢失数据。

确认 = 全部

领导者和副本是通过确认请求的,这意味着生产者必须等待收到代理的任何副本的确认才能继续,这会增加延迟但确保安全,此设置确保不会丢失数据。