Kafka写数据流程
1. 连接zk集群,从zk中拿到对应的topic的partition信息和partition的leader的相关信息
2. 连接到对应的leader对应的broker
3. 将消息发送到partition的leader上
4. 其他follower从leader同步数据
5. 依次返回ack
6. 直到所有的ISR中的数据写入完成,才完成提交,整个写过程结束
心跳通讯是保证kafka的高可用
Kafka读数据流程
1. 连接zk集群,从zk中拿到对应的topic的partition信息和partition的leader的相关信息
2. 连接到对应的leader对应的broker
3. consumer将自己保存的offset发送给leader
4. leader根据offset等信息定位到segment(索引文件和日志文件)
5. 根据索引文件中的内容,定位到日志文件中该偏移量对应的开始位置读取相应长度的数据并返回给consumer