Kafka架构 数据发送保障

producer是如何确定分区已经成功的将这条消息保存起来了?

其实就是produce发送消息,leader收到这条消息,并且成功的保存下来了,那么会给producer回复叫做ACK,producer在收到了这样回复之后就认为分区把消息成功保存下来了。

如果producer没有收到这样的消息,那么producer会重复的发送这条消息,再次发送,直到收到为止。这就是kafka中发送数据的保障。

leader在将消息存储到本地之后,follower需要向leader做消息的同步,副本的同步方式有下面两种策略。kafka采用的是第二种策略,当所有的follower同步完成之后才会发送ACK给producer。

第二个策略当中,单反有一个follower没有同步完成,这个时候leader就得一直等下去,直到同步完成才会给producer发ack。这样是不行的,不能让leader死等下去。

leader维护了一个动态的列表,副本同步队列,也就是有哪些follower可以和leader建立联系。这样follower就会存在ISR队列里面。如果follower长时间没有和leader进行同步那么也不会死等下去了,会将follower踢出isr的队列,当剩下的follower将数据同步完成leader就可以向producer发送ack了。

kafka为了保证数据可以成功的写入分区当中会有一个ack的应答机制。

1 不需要等待副本的同步,leader只要将消息写下来了就会返回ack,producer就可以发送下一条消息了。

相关推荐
有颜有货5 小时前
一文搞懂企业五大架构
架构·数据架构·业务架构·技术架构·代码架构
剑胆琴心静水深流7 小时前
全栈之路6---web集成与呈现
前端·vue.js·spring boot·分布式·spring·前端框架·npm
cellurw7 小时前
从虚拟化音频架构到板端故障定位:车载 Audio 阶段性工程实践整理
架构·音视频
爱学习的小白柏8 小时前
【AI问数技术】多Agent协同架构:查询规划/SQL生成/洞察分析/报告生成
java·网络·人工智能·windows·sql·架构·llama
Larcher8 小时前
SDD 项目开发步骤与提示词
人工智能·设计模式·架构
ZGIAI9 小时前
ZGI 父子分块:连接检索片段与完整上下文
人工智能·架构
ZGIAI9 小时前
ZGI 文件解析:知识入库前的质量门
人工智能·架构
xiamo@moment10 小时前
kafka学习笔记-概念总集
运维·kafka
KAIWEILIUCC11 小时前
Ray:高性能、易扩展的Python分布式计算框架
分布式·llm
空堂与归12 小时前
实时目标检测怎么做到又快又准?YOLOv12架构深度解析
人工智能·yolo·目标检测·计算机视觉·架构