kafka消息确认机制

前言

ACK机制是所有消息中间件必备的特新,kafka也不例外,ACK机制可以提醒使用者消息是否成功发送到broker

我们知道,kafka的一个topic中,具体负责处理消息的是分区,一个分区可能存在多个副本,因此在producer端向broker发送消息时,ACK表示消息成功发送到分区后,broker返回给发端的一种可靠性机制

在这里插入图片描述

producerACKs参数

producer端的ACK机制和副本数量有着较为密切的关系,producer配置的acks参数了,acks参数表示当生产者生产消息的时候,写入到副本的要求严格程度。通俗来说,就是配置的ACK的严格程度越大,性能就越差,这个也很好理解,如果消息发到了broker之后,broker不用考虑同步分区数据就立马返回,这样的性能自然是最好的,但是又无法确保消息同步的可靠性,因此它决定了生产者如何在性能和可靠性之间做取舍。

在程序中的配置体现在如下

props.put("acks", "all");

acks的参数选择常用的有这么几种:

  • acks配置为0

猜你喜欢

转载自blog.csdn.net/zhangcongyi420/article/details/111715230