Kafka 的 9093 端口
9093 在 Kafka 部署里通常承担两种角色:一是 KRaft 模式下 controller 的监听端口,即集群元数据的控制面;二是 broker 的 SSL 加密监听端口。Kafka 没有为这两种用途分配标准端口,9093 只是社区与发行版普遍采用的惯例。三节点 KRaft 集群必须让节点间互通 9093,否则会出现元数据操作卡死、选举反复这类故障。
基本信息
| 服务 | Kafka controller 监听或 SSL 监听(部署惯例) |
|---|---|
| 端口/协议 | TCP 9093,承载控制面或 TLS 流量 |
| 相关端口 | 9092 明文 broker 监听,9094 常见第二监听 |
| 关键配置 | listeners、controller.quorum.voters、inter.broker.listener.name |
| 权限要求 | 集群运维人员,配置变更需重启 broker |
| 安全等级 | 仅集群网段,禁止业务网段访问控制面 |
典型使用场景
- KRaft 集群的控制器选举与元数据同步
- broker 启用 TLS 后把加密监听放在 9093,与明文监听并存
- 迁移灰度:老集群另加监听端口做平滑切换
- 安全分区:加密监听与明文监听分离,便于按端口做访问控制
- 排障:用元数据仲裁工具观察控制面状态
KRaft 配置与状态观察
KRaft 配置与状态观察
# server.properties 关键项
# process.roles=broker,controller
# node.id=1
# controller.quorum.voters=1@k1:9093,2@k2:9093,3@k3:9093
# listeners=PLAINTEXT://:9092,CONTROLLER://:9093
kafka-metadata-quorum.sh --bootstrap-server k1:9092 describe --status # 查看控制面状态
ss -lntp | grep -E ':(9092|9093) ' # 核对监听端口端口惯例对照
| 端口 | 常见角色 | 说明 |
|---|---|---|
| 9092 | broker 明文监听 | 客户端与 broker 间的默认入口 |
| 9093 | controller 或 SSL 监听 | 控制面或 TLS 加密端口 |
| 9094 | 第二监听如 SASL_SSL | 多监听并存时常见 |
| 2181 | ZooKeeper 旧架构 | 迁到 KRaft 后可退役 |
运维要点
- controller 节点建议独立部署或至少与 broker 分担负载,避免元数据写竞争
- 扩缩容时先改 controller.quorum.voters 并逐节点滚动重启,不要一次性全改
- listeners 名称必须与 inter.broker.listener.name 及 controller.listener.names 对应上
- 升级前导出一份 server.properties,端口与角色配置回滚最难凭记忆复原
- 监控控制面用仲裁状态命令而非端口探测,端口在听不代表仲裁正常
Kafka 端口的具体含义取决于 listeners 配置,同一个 9093 在不同集群里可能是控制面也可能是业务加密口。排查前先用配置确认角色,再判断放行范围。
把控制面端口开放给业务网段等于把集群元数据暴露给任意客户端。controller 监听应只允许集群节点访问,并注意 KRaft 与 ZooKeeper 混布期间的端口重叠。