Kafka发送消息流程与选举机制
Kafka的选举机制
Kafka集群中有一个broker会被选举为Controller,负责管理集群broker的上下线,所有topic的分区副本分配和leader选举等工作,而对Controller的管理依赖于zk
leader的选举过程
Kafka的发送消息流程
Kafka的producer发送消息采用异步的形式,在消息发送过程中,涉及到了两个线程——main线程和Sender线程,以及一个线程共享变量——RecordAccumulator。main线程将消息发送给RecordAccumulator,Sender线程不断从RecordAccumulator中;拉取消息发送到Kafka broker中
思考,为什么要引入RecordAccumulator?
main线程的执行流程:
先执行过滤器对不合法的要求进行过滤,然后对其进行序列化,最后再进行的分片