Kafka到底会不会丢消息

本文介绍了Kafka作为分布式消息系统的工作原理,包括消息从生产到消费的过程,以及可能造成消息丢失的环节。讨论了消息可靠性保证,如ACK机制、OS Cache缓存和消费者消费模式。同时,分析了At most once、At least once和Exactly once三种消息传输语义,并提出了实现Exactly once的策略。
摘要由CSDN通过智能技术生成

1、kafka是什么

一种高吞吐量的分布式、发布订阅消息系统,它可以处理消费者规模的,网站中的所有动作流数据,具有高性能、持久化、多副本备份、横向扩展能力……

  • 以时间复杂度为 O(1) 的方式提供消息持久化能力,即使对 TB 级以上数据也能保证常数时间复杂度的访问性能。
  • 高吞吐率。即使在非常廉价的商用机器上也能做到单机支持每秒 100K 条以上消息的传输。
  • 支持 Kafka Server 间的消息分区,及分布式消费,同时保证每个 Partition 内的消息顺序传输。
  • 同时支持离线数据处理和实时数据处理。
  • Scale out:支持在线水平扩展。

image.png

2、消息从生产到消费

2.1、发送数据

永远找leader!消息写入leader后,follower是主动的去leader进行同步的!producer采用push模式将数据发布到broker,每条消息追加到分区中,顺序写入磁盘,所以保证同一分区内的数据是有序的!

  • partition在写入的时候可以指定需要写入的partition,如果有指定,则写入对应的partition。
  • 如果没有指定partition,但是设置了数据的key,则会根据key的值hash出一个partition。
  • 如果既没指定partition,又没有设置k
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值