写点什么

Kafka 核心组件之 Controller 概念介绍(1)

  • 2022 年 1 月 11 日
  • 本文字数:554 字

    阅读完需:约 2 分钟

Controller 是什么?

Controller,是 Apache Kafka 的核心组件。它的主要作用是在 Apache Zookeeper 的帮助下管理和协调控制整个 Kafka 集群。

集群中的任意一台 Broker 都能充当 Controller 的角色,但是,在整个集群运行过程中,只能有一个 Broker 成为 Controller。也就是说,每个正常运行的 Kafka 集群,在任何时刻都有且只有一个 Controller



Controller 里都保存了什么数据?



图中展示的数据量几乎把我们能想到的所有 Kafka 集群的数据都囊括进来了。这里面比较重要的数据有:

  1. 所有主题信息。包括具体的分区信息,比如领导者副本是谁,ISR 集合中有哪些副本等。

  2. 所有 Broker 信息。包括当前都有哪些运行中的 Broker,哪些正在关闭中的 Broker 等。

  3. 所有涉及运维任务的分区。包括当前正在进行 Preferred 领导者选举以及分区重分配的分区列表。

这些数据其实在 ZooKeeper 中也保存了一份。每当控制器初始化时,它都会从 ZooKeeper 上读取对应的元数据并填充到自己的缓存中。

而 Broker 上元数据的更新都是由 Controller 通知完成的,Broker 并不从 Zookeeper 获取元数据信息。


以上内容主要参考胡夕《Kafka 核心技术与实战》和云加社区 ,作者袁吉的文章整理而来,喜欢的同学可以关注下他们。


博主简介:国内最大最权威的 Kafka 中文社区,共享知识,实时掌控最新行业资讯

技术交流:请联系博主微信号:didiyun0125

社区地址:免费加入中 ~



发布于: 刚刚阅读数: 2
用户头像

还未添加个人签名 2021.12.13 加入

还未添加个人简介

评论

发布
暂无评论
Kafka核心组件之Controller概念介绍(1)