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就可以发送下一条消息了。

相关推荐
隔窗听雨眠36 分钟前
生产级Kubernetes集群部署完全指南:从kubeadm到高可用架构落地
容器·架构·kubernetes
Embedded-Xin2 小时前
Rust学习——Cargo工具
linux·学习·架构·rust·嵌入式
笨蛋不要掉眼泪2 小时前
RabbitMQ消息队列:业务幂等性
分布式·rabbitmq·java-rabbitmq
xcLeigh2 小时前
KingbaseES 的卢智能运维体架构深度拆解
运维·数据库·人工智能·ai·架构·ffmpeg·智能体
菜地里的小菜鸟3 小时前
k8s部署单节点 Kafka(KRaft 模式)并启用 SASL 认证
kafka·kraft·k8s部署单节点kafkakraft模式·k8s部署kafka
Volunteer Technology4 小时前
Kafka的消费全流程
分布式·kafka·linq
人生百态,人生如梦4 小时前
每日论文解读 (8.3) 1——DeepResearch Agent System:稀疏激活架构驱动的自主深度研究Agent
架构·llm·agent·deepresearch
openYuanrong分布式计算引擎5 小时前
openYuanrong 打造 Agent 时代的企业级分布式底座
人工智能·分布式·ai·serverless
Jul1en_5 小时前
【Java 脚手架】封装通用工具类-1
java·spring boot·分布式·spring·spring cloud
篮框坏了5 小时前
Kafka 消费者卡死排查:一个 topic 堵了 18 小时,监控全绿没人发现
kafka