You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kafka KRaft集群新增broker,controller节点及控制器查询问题咨询

KRaft集群扩展Controller Quorum及相关问题解答

一、为什么修改server.properties重启后新节点未加入投票者列表?

KRaft集群的Controller Quorum投票者列表存储在集群元数据中,并非仅依赖节点本地配置文件。修改server.properties仅能让节点具备Controller角色的运行能力,但无法自动更新集群层面的投票者集合,必须通过专门的元数据修改操作完成。

二、所需执行的后续操作

1. 确认节点配置正确性

确保节点4、5的server.properties已完成以下配置:

  • process.roles=broker,controller(同时开启Broker和Controller双角色)
  • controller.quorum.voters包含所有原Controller节点(1、2、3)和新增节点(4、5),格式示例:controller.quorum.voters=1@node1:9093,2@node2:9093,3@node3:9093,4@node4:9093,5@node5:9093
  • 已重启节点4、5;若原Controller节点也更新了controller.quorum.voters配置,也需重启

2. 更新集群元数据中的Controller Quorum投票者

使用kafka-metadata-shell工具连接集群,执行投票者添加操作:

# 替换<bootstrap-server>为任意Broker/Controller节点的地址
kafka-metadata-shell.sh --bootstrap-server node1:9092

进入shell后执行添加命令:

alter-controller-quorum --add-voters 4,5

验证投票者列表是否更新:

alter-controller-quorum --list-voters

三、是否需要重新格式化节点存储?

不需要重新格式化节点4、5的存储:

  • 节点已作为Broker运行,已有完整的日志数据,重新格式化会丢失数据;
  • 当节点以broker,controller角色启动时,会自动从现有Controller Quorum同步元数据,无需初始化格式化。若节点未配置controller.log.dir,只需指定一个空目录即可(Controller会自动创建所需的元数据存储文件)。

四、简便查看集群控制器的方法

方法1:使用kafka-metadata-shell查看投票者列表

进入metadata shell后执行:

alter-controller-quorum --list-voters

或直接查看元数据中的Controller Quorum详情:

get /metadata/controllerQuorum

方法2:查看Controller节点日志

任意Controller节点的日志中会包含类似[Controller id=1] Controller is active的记录,但此方法需登录节点查看,不如kafka-metadata-shell便捷。

内容的提问来源于stack exchange,提问作者Jon Phelps

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 15:12:44