1 Controller 简介
Controller 是运行在 Broker 上的,任何一台 Broker 都可以作为 Controller,但是一个集群同时只能存在一个 Controller,也就意味着 Controller 与数据节点是在一起的,Controller 做的主要事情如下:
- Broker 的上线、下线处理;
- 新创建的 topic 或已有 topic 的分区扩容,处理分区副本的分配、leader 选举;
- 管理所有副本的状态机和分区的状态机,处理状态机的变化事件;
- topic 删除、副本迁移、leader 切换等处理。
2 Controller 选举
3 Controller 数据
4 Controller 故障转移
5 Controller 设计原理
参考文章: