Kafka ACK机制详解笔记

1. ACK机制简介
  • 目的:确保生产者发送的消息可靠地写入Kafka集群。
  • 核心:生产者发送消息后需等待Kafka集群的确认。
2. ACK级别
  • acks=0:不等待确认,效率最高,但可能丢数据。
  • acks=1:等待Leader分区确认,可靠性较高,但Leader故障可能丢数据(Kafka 2.0默认值)。
  • acks=all(或-1):等待所有ISR分区确认,最可靠,但性能较低。
3. ISR(In-Sync Replicas)
  • 定义:与Leader副本同步的副本集合,包含所有已确认消息。
  • 作用:保证数据可靠性,确保副本与Leader数据一致。
4. Leader与Follower
  • Leader:处理所有读写请求。
  • Follower:从Leader拉取数据并同步。
5. ISR的维护
  • 加入ISR:Follower追上Leader后加入。
  • 移出ISR:Follower落后Leader超过设定时间被移出。
6. ISR源码分析
  • Partition类:维护当前分区的ISR集合。
  • Replica类:判断副本是否与Leader同步。
7. ACK机制与ISR
  • acks=all:确保消息写入ISR所有副本后返回确认,提高消息的可靠性。
8. 优缺点分析
  • acks=0:优点是性能最高,缺点是消息可能丢失。
  • acks=1:优点是性能与可靠性平衡,缺点是Leader故障可能丢数据。
  • acks=all:优点是可靠性最高,缺点是性能较低,延迟较高。
9. 性能影响
  • 更高的ACK级别带来更高的延迟,降低吞吐量。
10. 复杂性
  • 需要根据应用场景选择合适的ACK配置,增加系统设计复杂性。
11. 适用场景
  • acks=0:适用于对消息丢失不敏感,追求高吞吐量的场景。
  • acks=1:适用于对消息有一定可靠性要求,性能要求较高的场景。
  • acks=all:适用于对消息可靠性要求极高,可接受较低吞吐量的场景。
12. 总结
  • Kafka的ACK机制提供不同级别保障,开发者可根据需求选择配置,平衡性能与可靠性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值