RocketMQ NameServer 的配置项
摘要
-
本文介绍 RocketMQ NameServer 的配置项。
-
本文使用的 RocketMQ 版本为 5.3.2。
查看 NameServer 配置项
1 | # 查看默认配置项 |
配置项项目源码简介
-
在源码
rocketmq-all-5.3.2-source-release/namesrv的启动类org.apache.rocketmq.namesrv.NamesrvStartup中 可以看到其启动时会初始化如下配置项的类
1 | private static NamesrvConfig namesrvConfig = null; |
配置项说明
-
NameServer 配置项说明与建议
| 参数名 | 默认值 | 参数说明 | 优化 / 建议 |
|---|---|---|---|
| rocketmqHome | /usr/local/soft/rocketmq/rocketmq5 | RocketMQ 安装目录 | 不建议修改 |
| kvConfigPath | /root/namesrv/kvConfig.json | KV 配置存储路径 | ✅ 改为 /data/rocketmq/namesrv/kvConfig.json 更规范 |
| configStorePath | /root/namesrv/namesrv.properties | NameServer 启动配置文件路径 | ✅ 放在非 root 路径下 /etc/rocketmq/namesrv.properties |
| productEnvName | center | 产品环境名称标识 | 可用于区分环境(dev/test/prod) |
| clusterTest | false | 是否启用集群测试模式 | 默认 false,生产勿启用 |
| orderMessageEnable | false | 是否开启顺序消息功能 | NameServer 一般无需开启 |
| returnOrderTopicConfigToBroker | true | 是否返回顺序消息主题配置给 broker | 保持默认 |
| clientRequestThreadPoolNums | 8 | 客户端请求线程数 | ✅ 若 NameServer 负载高可增至 16~32 |
| defaultThreadPoolNums | 16 | 默认线程池线程数 | 视 CPU 核心数调整 |
| clientRequestThreadPoolQueueCapacity | 50000 | 客户端请求队列长度 | ✅ 高并发环境可调高至 100000 |
| defaultThreadPoolQueueCapacity | 10000 | 默认任务队列长度 | 适度提高防止拒绝任务 |
| scanNotActiveBrokerInterval | 5000 | 扫描失效 Broker 的间隔(ms) | 默认 5s,可保持 |
| unRegisterBrokerQueueCapacity | 3000 | Broker 注销队列容量 | 默认即可 |
| supportActingMaster | false | 是否支持 ActingMaster 功能 | ✅ 若启用 controller 建议设为 true |
| enableAllTopicList | true | 是否启用所有主题列表接口 | 可保持 |
| enableTopicList | true | 是否允许主题列表查询 | 可保持 |
| notifyMinBrokerIdChanged | false | 是否通知最小 brokerId 变化 | 一般无需开启 |
| enableControllerInNamesrv | false | 是否在 NameServer 中启用 Controller 模块 | ✅ 若部署简化集群可考虑 true(测试环境) |
| needWaitForService | false | 是否等待服务就绪再启动 | 可保持 |
| waitSecondsForService | 45 | 启动等待时间 | 可保持 |
| deleteTopicWithBrokerRegistration | false | 注册时是否删除 topic | 默认即可 |
| configBlackList | configBlackList;configStorePath;kvConfigPath | 黑名单配置项 | 保持默认 |
| bindAddress | 0.0.0.0 | 绑定的监听地址 | ✅ 生产环境建议绑定内网 IP |
| listenPort | 9876 | NameServer 监听端口 | ✅ 可通过防火墙限制外部访问 |
| serverWorkerThreads | 8 | 服务端业务处理线程数 | 可根据负载调整 |
| serverCallbackExecutorThreads | 0 | 回调执行线程数 | 0 表示自动设置 |
| serverSelectorThreads | 3 | Selector 线程数 | 一般 2~4 即可 |
| serverOnewaySemaphoreValue | 256 | 单向请求并发限制 | 可保持 |
| serverAsyncSemaphoreValue | 64 | 异步请求并发限制 | 可保持或略增 |
| serverChannelMaxIdleTimeSeconds | 120 | 连接空闲关闭时间 | 可调大到 300 提高容错 |
| serverSocketSndBufSize | 0 | TCP 发送缓冲区大小 | 0 表示使用系统默认 |
| serverSocketRcvBufSize | 0 | TCP 接收缓冲区大小 | 建议 131072(128KB)以上 |
| writeBufferHighWaterMark | 0 | 写缓冲高水位标记 | 默认即可 |
| writeBufferLowWaterMark | 0 | 写缓冲低水位标记 | 默认即可 |
| serverSocketBacklog | 1024 | TCP 连接等待队列 | ✅ 高并发场景可调大至 2048 |
| serverNettyWorkerGroupEnable | true | 是否启用 Netty worker 线程组 | 默认 true |
| serverPooledByteBufAllocatorEnable | true | 是否启用 Netty 池化内存 | 建议保持 |
| enableShutdownGracefully | false | 是否优雅关闭 | ✅ 建议设为 true |
| shutdownWaitTimeSeconds | 30 | 优雅关闭等待时间 | 建议 30~60 |
| useEpollNativeSelector | false | 是否启用 Linux Epoll | ✅ Linux 环境建议设为 true 提高性能 |
| clientWorkerThreads | 4 | 客户端 worker 线程数 | 默认即可 |
| clientCallbackExecutorThreads | 2 | 客户端回调线程数 | 默认即可 |
| clientOnewaySemaphoreValue | 65535 | 客户端单向请求并发限制 | 默认即可 |
| clientAsyncSemaphoreValue | 65535 | 客户端异步请求并发限制 | 默认即可 |
| connectTimeoutMillis | 3000 | 连接超时(ms) | ✅ 可提高至 5000 增加容错 |
| channelNotActiveInterval | 60000 | 检查通道非活动间隔 | 默认即可 |
| isScanAvailableNameSrv | true | 是否扫描可用 NameServer | 保持 |
| clientChannelMaxIdleTimeSeconds | 120 | 客户端空闲连接超时 | 默认即可 |
| clientSocketSndBufSize | 0 | 客户端 TCP 发送缓冲区 | 建议 131072 |
| clientSocketRcvBufSize | 0 | 客户端 TCP 接收缓冲区 | 建议 131072 |
| clientPooledByteBufAllocatorEnable | false | 客户端是否启用池化 | ✅ 建议设为 true 提高性能 |
| clientCloseSocketIfTimeout | true | 超时是否关闭 socket | 保持默认 |
| useTLS | false | 是否启用 TLS 通信 | ✅ 若公网部署强烈建议开启 |
| socksProxyConfig | {} | SOCKS 代理配置 | 内网部署无需设置 |
| disableCallbackExecutor | false | 是否禁用回调执行器 | 默认即可 |
| disableNettyWorkerGroup | false | 是否禁用 Netty worker group | 默认即可 |
| maxReconnectIntervalTimeSeconds | 60 | 最大重连间隔 | 默认即可 |
| enableReconnectForGoAway | true | 是否启用 goaway 自动重连 | 保持 true 增强健壮性 |
-
推荐重点优化的关键项
| 类别 | 参数 | 推荐值 | 原因 |
|---|---|---|---|
| 性能 | useEpollNativeSelector |
true | Linux 性能显著提升 |
| 安全 | bindAddress |
内网 IP | 防止暴露公网 |
| 安全 | useTLS |
true(公网) | 启用加密传输 |
| 健壮性 | enableShutdownGracefully |
true | 防止强制关闭导致状态不一致 |
| 负载 | clientRequestThreadPoolNums |
16~32 | 提高并发能力 |
| 网络 | serverSocketBacklog |
2048 | 减少连接拒绝 |
| 缓冲 | serverSocketSndBufSize / RcvBufSize |
131072 | 提高网络吞吐 |
| 文件路径 | kvConfigPath / configStorePath |
非 root 路径 | 避免权限问题 |