kafka代理是否存储元数据?

4ioopgfo  于 2021-06-06  发布在  Kafka
关注(0)|答案(2)|浏览(476)

kafka broker是否存储生产者api使用的元数据(例如,哪些分区是主题的前导分区等)?据我所知,这个元数据存储在zookeeper中,对吗?如果这是真的,那么zookeeper如何更新经纪人的最新信息?

ebdffaop

ebdffaop1#

kafka是一个分布式系统,它使用zookeeper来完成控制器选择、主题配置、聚类等功能。
更准确地说,zookeeper启动控制器选举。控制器代理是kafka集群中的单个代理,负责每个分区的主代理和跟随者。当一个特定的代理被关闭时,控制器会让其他副本知道(以便处理分区领导者等)。此外,当控制器失败时,zookeeper启动新的选择,以便选择新的代理作为控制器。
此外,Zookeeper知道哪些经纪人是Kafka集群的一部分,哪些还活着。类似地,它还知道特定于主题的信息,例如存在哪些主题、每个主题有多少分区、副本在哪里等等。
zookeeper还存储有关配额和ACL的信息,即每个客户端允许使用/生成的数据量,以及允许谁使用或生成特定主题的数据量。

9nvpjoqh

9nvpjoqh2#

所有kafka代理都可以回答描述集群当前状态的元数据请求:有哪些主题、这些主题有哪些分区、哪些代理是这些分区的领导者等等。
Zookeeper负责:
选择一个控制器代理-并确保只有一个
群集成员资格-允许代理加入群集
主题配置—存在哪些主题、每个主题有多少个分区、副本在哪里、谁是首选的领导者、为每个主题设置了哪些配置覆盖
配额-每个客户端允许读写多少数据
acls-谁可以读写哪个主题
kafka和zookeeper之间有定期通信,以便zookeeper知道kafka代理仍处于活动状态(zookeeper心跳机制),并且还响应诸如正在创建的主题或主题分区的副本不同步之类的事件。

相关问题