RocketMQ Controller 的配置项
摘要
-
本文介绍 RocketMQ Controller 的配置项。
-
本文使用的 RocketMQ 版本为 5.3.2。
查看 Controller 配置项
-
查看全部默认配置项
1 | # 查看全部默认配置项 |
配置项项目源码简介
-
在源码
rocketmq-all-5.3.2-source-release/controller的启动类org.apache.rocketmq.controller.ControllerStartup中 可以看到其启动时会初始化如下配置项的类
1 | final ControllerConfig controllerConfig = new ControllerConfig(); |
配置项说明
-
Controller 配置参数说明与优化建议
| 分类 | 参数名 | 默认值 | 说明 | 优化 / 建议 |
|---|---|---|---|---|
| 基础信息 | rocketmqHome |
/usr/local/soft/rocketmq/rocketmq5 | RocketMQ 根路径 | 保持默认即可 |
configStorePath |
/root/controller/controller.properties | Controller 配置文件路径 | ✅ 改为 /data/rocketmq/controller/controller.properties,避免使用 /root |
|
controllerType |
DLedger | Controller 类型(DLedger / STANDALONE) | ✅ 建议使用 DLedger(高可用) | |
controllerStorePath |
(空) | Controller 元数据存储路径 | ✅ 建议 /data/rocketmq/controller/store |
|
| DLedger 选举配置 | controllerDLegerGroup |
(空) | Controller 集群组名 | ✅ 必填,例如:controllerGroup01 |
controllerDLegerPeers |
(空) | 集群节点列表,格式:n0-10.0.0.1:19876;n1-10.0.0.2:19876;n2-10.0.0.3:19876 |
✅ 必填(3 节点推荐) | |
controllerDLegerSelfId |
(空) | 当前节点 ID,如 n0 |
✅ 必填 | |
mappedFileSize |
1073741824 | DLedger 存储文件大小 (1GB) | 可保持默认 | |
electMasterMaxRetryCount |
3 | Master 选举最大重试次数 | 默认即可 | |
enableElectUncleanMaster |
false | 是否允许选举非同步 Master | ✅ 建议保持 false(避免数据丢失) | |
| Broker 管理 | scanNotActiveBrokerInterval |
5000 | 扫描不活跃 Broker 的间隔(ms) | 默认即可 |
scanInactiveMasterInterval |
5000 | 检测失活 Master 间隔(ms) | 默认即可 | |
notifyBrokerRoleChanged |
true | 是否通知 Broker 角色变更 | ✅ 建议开启(保持同步) | |
isProcessReadEvent |
false | 是否处理读事件 | 默认即可 | |
| 线程与性能 | controllerThreadPoolNums |
16 | 控制线程池大小 | 可调至 8–32 视规模而定 |
controllerRequestThreadPoolQueueCapacity |
50000 | 控制线程池队列容量 | 默认即可 | |
| Metrics 监控 | metricsExporterType |
DISABLE | 指标输出方式(DISABLE / PROM / GRPC / LOG) | ✅ 建议设为 PROM |
metricsPromExporterPort |
5557 | Prometheus 端口 | ✅ 若启用监控,可用默认 5557 | |
metricsPromExporterHost |
(空) | Prometheus 绑定主机 | 默认即可 | |
metricLoggingExporterIntervalInMills |
10000 | 日志输出指标间隔 | 可调整 | |
metricsGrpcExporterTarget |
(空) | gRPC 监控目标 | 可忽略 | |
metricsInDelta |
false | 是否以增量输出指标 | 默认即可 | |
| JRaft 配置(底层一致性协议) | jRaftGroupId |
jRaft-Controller | Raft 组名 | 默认即可 |
jRaftServerId |
localhost:9880 | 当前节点 ID | ✅ 修改为实际 IP,例如 10.0.0.1:9880 |
|
jRaftInitConf |
localhost:9880,localhost:9881,localhost:9882 | 集群配置 | ✅ 修改为实际节点 IP | |
jRaftControllerRPCAddr |
localhost:9770,localhost:9771,localhost:9772 | Controller RPC 地址 | ✅ 修改为实际节点 IP | |
jRaftElectionTimeoutMs |
1000 | 选举超时(ms) | 默认即可(过低可能频繁选举) | |
jRaftScanWaitTimeoutMs |
1000 | 扫描等待超时 | 默认即可 | |
jRaftSnapshotIntervalSecs |
3600 | 快照间隔时间(秒) | ✅ 可设为 600(10分钟)加快日志压缩 | |
| 网络配置 | bindAddress |
0.0.0.0 | 绑定监听地址 | 默认即可 |
listenPort |
19876 | Controller 服务端口 | ✅ 确保未冲突 | |
serverWorkerThreads |
8 | Netty 工作线程 | 默认即可 | |
serverSelectorThreads |
3 | Selector 线程数 | 默认即可 | |
serverSocketBacklog |
1024 | Socket backlog 队列 | 默认即可 | |
useEpollNativeSelector |
false | 是否使用 Epoll | ✅ Linux 环境建议 true | |
enableShutdownGracefully |
false | 优雅停机 | ✅ 建议 true | |
| 客户端通信 | clientWorkerThreads |
4 | 客户端工作线程 | 默认即可 |
clientAsyncSemaphoreValue |
65535 | 异步请求信号量 | 默认即可 | |
clientCloseSocketIfTimeout |
true | 连接超时关闭 | 默认即可 | |
connectTimeoutMillis |
3000 | 连接超时 | 默认即可 | |
useTLS |
false | 是否启用 TLS | ✅ 若生产环境有安全要求,建议启用 | |
| 其他 | configBlackList |
configBlackList;configStorePath | 配置黑名单项 | 默认即可 |
maxReconnectIntervalTimeSeconds |
60 | 最大重连间隔 | 默认即可 | |
enableReconnectForGoAway |
true | 是否为 GOAWAY 连接启用重连 | 默认即可 |
-
推荐重点优化的关键项
| 项目 | 推荐值 | 说明 |
|---|---|---|
controllerType |
DLedger | 高可用模式 |
controllerDLegerGroup |
controllerGroup01 | 集群分组名 |
controllerDLegerPeers |
n0-10.0.0.1:19876;n1-10.0.0.2:19876;n2-10.0.0.3:19876 |
三节点推荐 |
controllerDLegerSelfId |
n0 / n1 / n2 | 对应节点 ID |
enableElectUncleanMaster |
false | 防止脏主选举 |
notifyBrokerRoleChanged |
true | 保持集群一致性 |
metricsExporterType |
PROM | 便于 Prometheus 监控 |
metricsPromExporterPort |
5557 | 默认即可 |
useEpollNativeSelector |
true | Linux 性能优化 |
enableShutdownGracefully |
true | 优雅停机 |
controllerStorePath |
/data/rocketmq/controller/store | 避免使用 /root |
jRaftSnapshotIntervalSecs |
600 | 提高快照频率 |