kafka 事务机制与系统优化

本文深入探讨 Kafka 的消息投递语义,包括最多一次、最少一次和恰好一次,并介绍了幂等性发送与事务原子性。此外,文章还讲解了 Consumer rebalance 算法,并详细列举了 Broker、Producer、Consumer、Zookeeper 和 JVM 的关键参数调优,以提高 Kafka 系统的性能。
摘要由CSDN通过智能技术生成

上一篇内容我们了解到 Kafka 通过 ISR 机制平衡了各个 Partition 之间的可用性和一致性,通过顺序读写/PageCache/零拷贝保证了 Kafka 的高性能。这里我们继续深入之前没有完成的话题,Kafka 还有一块非常重要的内容 —— 消息投递语义,这块内容和流式计算息息相关,解决的消费数据的唯一性的问题。

本篇面试内容划重点:消息投递语义、幂等、rebalance、调优。

Kafka 的消息投递语义

kafka 支持 3 种消息投递语义,最多一次,最少一次,恰好一次。具体看下述说明。

At most once:最多一次 这种语义可能存在消息丢失的情况,但不会重复消费。Producer 端发送消息时配置异步发送即是这一种语义,可能存在数据丢失的情况,好处是高效,不需要等待 Broker 响应成功消息。 大家都知道,Consumer 在消费数据时需要管理 Offset,那么如果 consumer 在读取消息后,先修改 offset,然后处理消息,这就是最多一次的语义,但是生产环境中一般不会用这种方式。

At least once:最少一次 这种语义消息不会丢失,但是可能会重复。Producer 端同步发送消息时&#

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

老蒙大数据

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值