目录
第1章 生产消息
1.1 消息写入算法
消息生产者将消息发送给broker,并形成最终可供消费者消费的log,是个比较复杂的过程。
- producer向broker集群提交消息发送请求
- broker controller接受该请求,并根据消息路由策略计算出该消息要写入的partition
- broker controller根据 topic 和 partition 去 zookeeper 中找对应的znode状态中该partition的leader。
- broker controller 向producer反馈消息要写入的partition leader。
- producer发送消息给该leader。
- leader接受消息并将该消息写入本地log,通知ISR中的followers进行消息同步。
- ISR中的followers从leader同步消息完成后,向leader发送ACK。
- leader收到所有ISR中的follower的ACK后,增加HW表示消费者已经可以消费到该位置了。