Kafka篇——生产者端发送消息配置汇总(ACK配置、重试间隔设置以及发送消息缓冲机制)干货满满!细节满满!

ACK配置

生产者同步发送消息的时候,生产者在获得集群返回的ACK前会一直阻塞,那么集群什么时候给生产者返回ACK呢?

在Kafka中,ACK(Acknowledgement)是一种确认机制,用于确保消息的可靠传递。当Producer发送消息给Kafka的一个分区时,Producer可以选择是否等待Broker对消息的接收进行确认。ACK机制提供了三种级别的确认:

1. `acks=0`:Producer发送消息后,不需要等待Broker的确认即可继续发送下一条消息。这种方式是最快的,但也是最不可靠的,因为消息可能会丢失而不被发现。

2. `acks=1`:Producer发送消息后,等待Broker的确认。一旦Broker接收到消息并写入到本地日志中,就会发送ACK给Producer,表示消息已成功写入。在这种级别下,如果Leader Broker接收消息后立即崩溃,并且尚未将消息完全复制到所有ISR(In-Sync Replicas)中,那么消息可能会丢失。

3. `acks=all`:Producer发送消息后,等待所有ISR中的Broker进行确认。只有当所有ISR Broker都接收到消息并写入到本地日志中,才会发送ACK给Producer。这是最可靠的确认级别,因为只有在多个副本都写入成功的情况下,才能确保消息不会丢失。

选择ACK级别时需要权衡消息的可靠性和性能。较低的ACK级别可以提高吞吐量,但会增加消息丢失的风险;较高的ACK级别可以提供更高的可靠性,但会带来较高的延迟。因此,需要根据具体业务需求和实际情况来选择最合适的ACK级别。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Be explorer

若认可笔者文章,手头富裕望支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值