Kafka controller

1 写入过程负载均衡:

    我们知道写入的时候都要提供broker信息,而每个broker都可以获取到topic的元数据信息。

    在发送前,producer就已经将record分区,可能是自定义或默认分区。达到发送阈值后将相同分区的数据批量发送。

    根据分区,自然知道对应的lead broker所在节点。由此达到负载均衡。

2  controller broker.

  kafka所有的broker都会在zookeeper注册。但是同一时刻只会存在一个controller. 其它的叫fellow。

通过zookeeper 的 get /controller可以获取controller信息。

 

 controller作用:监控所有其它的broker,如果其中一个挂了,会将该broker下所有分区的副本重新选择一个leader, 由该leader进行读写操作。(注意:副本在kafka信息中,以broker编号的形式体现)

3 kafka  broker及partition信息保存

controller信息通过zookeeper注册,先注册的即为controller.  当controller宕机后,剩余的broker会注册为controller.

broker荡机后,controller会将分区和lead信息刷新到zookeeper,其它broker自然会知道。

参考:kafka写入源码过程 https://www.jianshu.com/p/afb2c314fee0

发布了16 篇原创文章 · 获赞 0 · 访问量 2851

猜你喜欢

转载自blog.csdn.net/peidezhi/article/details/102487158