Skip to main content
版本:Next

配置参数

TubeMQ 服务端配置文件说明:​

TubeMQ 服务端包括 Master 和 Broker 共 2 个模块,Master 又包含供外部页面访问的 Web 前端模块(该部分存放在 resources 中),考虑到实际部署时 2 个模块常常部署在同 1 台机器中,TubeMQ 将 2 个模块 3 个部分的内容打包在一起交付给运维使用;客户端则不包含服务端部分的 lib 包单独交付给业务使用。

Master 与 Broker 采用 ini 配置文件格式,相关配置文件分别放置在 tubemq-server-x.y.z/conf/ 目录的 master.ini 和 broker.ini 文件中:

他们的配置是按照配置单元集合来定义的,Master 配置由必选的 [master]、可选择的必选 [meta_zookeeper]、[meta_bdb] 和可选的 [tlsSetting] 一共 4 个配置单元组成,Broker配置由必选的 [broker] 和可选的 [tlsSetting] 一共 2 个配置单元组成;实际使用时,大家也可将两个配置文件内容合并放置为一个 ini 文件。

注意:

  • 由于 Apache 依赖包的 LICENSE 问题,从 1.1.0 版本开始 TubeMQ 发布的包不再包含 BDB 包;
  • 1.1.0 版本开始,元数据缺省采用 ZooKeeper 存储,可选支持 BDB,1.1.0 版本需要手工设置 master.ini 配置文件,增加 [meta_bdb] 配置单元才能支持 BDB 存储。
  • 若业务使用 BDB 组件,需要自行下载 com.sleepycat.je-7.3.7.jar 包,要不会系统运行时会报“ java.lang.ClassNotFoundException: com.sleepycat.je.ReplicaConsistencyPolicy” 错误;

Master 除了后端系统配置文件外,还在 resources 里存放了 Web 前端页面模块,resources 的根目录 velocity.properties 文件为 Master 的 Web 前端页面配置文件。

配置项详情:​

master.ini 文件中关键配置内容说明:​

[master]

master 系统运行主要配置单元,必填单元,值固定为 "[master]"

配置项是否必选值类型配置说明
hostName是StringMaster 对外服务的主机地址,必填项,必须在网卡中已配置,处于启用状态,非回环且不能为 127.0.0.1 的 IP
port否intMaster 监听的端口,可选项,缺省值为 8715
webPort否intMaster Web 控制台的访问端口,缺省值为 8080
webResourcePath是StringMaster Web Resource 部署绝对路径,必填项,该值设置不正确时 Web 页面将不能正常显示
confModAuthToken否String通过 Master 的 Web 或 API 做变更操作(包括增、删、改配置,以及变更 Master 及管理的 Broker 状态)时操作者需要提供的授权 Token,该值可选,缺省为 "ASDFGHJKL"
firstBalanceDelayAfterStartMs否longMaster 启动至首次开始 Rebalance 的时间间隔,可选项,缺省 30000 毫秒
consumerBalancePeriodMs否longMaster 对消费组进行 Rebalance 的均衡周期,可选项,缺省 60000 毫秒,当集群规模较大时,请调大该值
consumerHeartbeatTimeoutMs否long消费者心跳超时周期,可选项,缺省 30000 毫秒,当集群规模较大时,请调大该值
producerHeartbeatTimeoutMs否long生产者心跳超时周期,可选项,缺省 30000 毫秒,当集群规模较大时,请调大该值
brokerHeartbeatTimeoutMs否longBroker 心跳超时周期,可选项,缺省 30000 毫秒,当集群规模较大时,请调大该值
rebalanceParallel否intMaster Rebalance 处理并行度,可选项,缺省 4,取值范围 [1, 20], 当集群规模较大时,请调大该值
socketRecvBuffer否longSocket 接收 Buffer 缓冲区 SO_RCVBUF 大小,单位字节, 负数为不做设置以缺省值为准
socketSendBuffer否longSocket 发送 Buffer 缓冲区 SO_SNDBUF 大小,单位字节, 负数为不做设置以缺省值为准
maxAutoForbiddenCnt否intBroker 出现 IO 故障时最大允许 Master 自动下线 Broker 个数,可选项,缺省为 5,建议该值不超过集群内 Broker 总数的 10%
startOffsetResetCheck否boolean是否启用客户端 Offset 重置功能的检查功能,可选项,缺省为 false
needBrokerVisitAuth否boolean是否启用 Broker 访问鉴权,缺省为 false,如果为 true,则 Broker 上报的消息里必须携带正确的用户名及签名信息
visitName否StringBroker 访问鉴权的用户名,缺省为空字符串,在 needBrokerVisitAuth 为 true 时该值必须存在,该值必须与 broker.ini 里的 visitName 字段值同
visitPassword否StringBroker 访问鉴权的密码,缺省为空字符串,在 needBrokerVisitAuth 为 true 时该值必须存在,该值必须与 broker.ini 里的 visitPassword 字段值同
startVisitTokenCheck否boolean是否启用客户端 visitToken 检查,缺省为 false
startProduceAuthenticate否boolean是否启用生产端用户认证,缺省为 false
startProduceAuthorize否boolean是否启用生产端生产授权认证,缺省为 false
startConsumeAuthenticate否boolean是否启用消费端用户认证,缺省为 false
startConsumeAuthorize否boolean是否启用消费端消费授权认证,缺省为 false
maxGroupBrokerConsumeRate否int集群 Broker 数与消费组里成员数的最大比值,可选项,缺省为 50,50 台 Broker 集群里允许 1 个消费组最少启动 1 个客户端消费

[meta_zookeeper]

Master 基于 ZooKeeper 进行元数据存储和多节点热备的配置单元,"[meta_zookeeper]" 这部分和 "[meta_bdb]" 二选一。

配置项是否必选值类型配置说明
zkServerAddr否Stringzk 服务器地址,可选配置,缺省为 "localhost:2181"
zkNodeRoot否Stringzk 上的节点根目录路径,可选配置,缺省为 "/tubemq"
zkSessionTimeoutMs否longzk 心跳超时,单位毫秒,默认 30 秒
zkConnectionTimeoutMs否longzk 连接超时时间,单位毫秒,默认 30 秒
zkSyncTimeMs否longzk 数据同步时间,单位毫秒,默认 5 秒
zkCommitPeriodMs否longMaster 缓存数据刷新到 zk 上的时间间隔,单位毫秒,默认 5 秒
zkMasterCheckPeriodMs否long当前节点是否为 Master 角色的检查周期,单位毫秒,缺省为 5 秒

[meta_bdb]

Master 基于 BDB 存储元数据及进行多节点热备保活的配置单元,"[meta_bdb]" 这部分和 "[meta_zookeeper]" 二选一。

配置项是否必选值类型配置说明
repGroupName否String集群名,所属主备 Master 节点值必须相同,可选字段,缺省为 "tubemqMasterGroup"
repNodeName是String所属 Master 在集群中的节点名,该值各个节点必须不重复,必填字段
metaDataPath否StringMetadata 存储路径,可以是绝对路径、或者相对 TubeMQ 安装目录("$BASE_DIR")的相对路径。缺省为 "var/meta_data"
repNodePort否int节点复制通讯端口,可选字段,缺省为 9001
repHelperHost否String集群启动时的主节点,可选字段,缺省为 "127.0.0.1:9001"
metaLocalSyncPolicy否int数据节点本地保存方式,该字段取值范围 [1,2,3],缺省为 1:其中 1 为数据保存到磁盘,2 为数据只保存到内存,3 为只将数据写文件系统 buffer,但不刷盘
metaReplicaSyncPolicy否int数据节点同步保存方式,该字段取值范围 [1,2,3],缺省为 1:其中 1 为数据保存到磁盘,2 为数据只保存到内存,3 为只将数据写文件系统 buffer,但不刷盘
repReplicaAckPolicy否int节点数据同步时的应答策略,该字段取值范围为 [1,2,3],缺省为 1:其中 1 为超过 1/2 多数为有效,2 为所有节点应答才有效;3 为不需要节点应答
repStatusCheckTimeoutMs否long节点状态检查间隔,可选字段,单位毫秒,缺省为 10 秒

[tlsSetting]

Master 启用 TLS 进行传输层数据加密通的相关设置,可选单元,值固定为 "[tlsSetting]"

配置项是否必选值类型配置说明
tlsEnable否boolean是否启用 TLS 功能,可选配置,缺省为 false
tlsPort否intMaster 的 TLS 端口号,可选配置,缺省为 8716
tlsKeyStorePath否StringTLS 的 keyStore 文件的绝对存储路径 + keyStore 文件名,在启动 TLS 功能时,该字段必填且不能为空
tlsKeyStorePassword否StringTLS 的 keyStorePassword 文件的绝对存储路径 + keyStorePassword 文件名,在启动 TLS 功能时,该字段必填且不能为空
tlsTwoWayAuthEnable否boolean是否启用 TLS 双向认证功能,可选配置,缺省为 false
tlsTrustStorePath否StringTLS 的 TrustStore 文件的绝对存储路径 + TrustStore 文件名,在启动 TLS 功能且启用双向认证时,该字段必填且不能为空
tlsTrustStorePassword否StringTLS 的 TrustStorePassword 文件的绝对存储路径 + TrustStorePassword 文件名,在启动 TLS 功能且启用双向认证时,该字段必填且不能为空

[prometheus]

Master 使用 prometheus 提供指标数据查询时的相关配置单元设置,可选配置单元集合 " [prometheus] "

配置项是否必选值类型配置说明
promEnable否boolean是否启用 prometheus 服务,可选配置,缺省为 false
promClusterName否String启用 prometheus 服务时 服务节点所属于的集群名,缺省值为 " InLong "
promHttpPort否int启用 prometheus 服务时的侦听端口,可选配置,缺省值为 9081

注意:

  • 基于 Docker 容器化的需要,master.ini 文件里对 [meta_bdb] 如上 3 个参数部分都是使用的缺省设置,在实际组网使用时需要以 Master 节点真实信息配置
  • Master 所有节点的 IP 信息要在 hosts 配置文件里构造 IP 与 hostName 映射关系,如类似 “10.10.11.205 10-10-11-205”
  • 需保证 Master 所有节点之间的时钟同步

Master 的前台配置文件 velocity.properties 中关键配置内容说明:​

配置项是否必选值类型配置说明
file.resource.loader.path是StringMaster 的 Web 的模板绝对路径,该部分为实际部署 Master 时的工程绝对路径 + /resources/templates,该配置要与实际部署相吻合,配置失败会导致 Master 前端页面访问失败。

broker.ini 文件中关键配置内容说明:​

[broker]

Broker 系统运行主配置单元,必填单元,值固定为 "[broker]"

配置项是否必选值类型配置说明
brokerId是int服务器唯一标志,必填字段,可设为 0;设为 0 时系统将默认取本机 IP 转化为 int 值再取 abs 绝对值,避免 brokerId 为负数,如果使用环境的 IP 比较复杂存在生成的 brokerId 值冲突时,则需要指定 brokerId 值进行设置。
hostName是StringBroker 对外服务的主机地址,必填项,必须在网卡中已配置,处于启用状态,非回环且不能为 127.0.0.1 的 IP
port否intBroker 监听的端口,可选项,缺省值为 8123
webPort否intBroker 的 http 管理访问端口,可选项,缺省为 8081
masterAddressList是StringBroker 所属集群的 Master 地址列表,必填字段,格式必须是 ip1:port1,ip2:port2,ip3:port3
primaryPath是StringBroker 存储消息的绝对路径,必选字段
maxSegmentSize否intBroker 存储消息 Data 内容的文件大小,可选字段,缺省 512M,最大 1G
maxIndexSegmentSize否intBroker 存储消息 Index 内容的文件大小,可选字段,缺省 18M,约 70W 条消息每文件
transferSize否intBroker 允许每次传输给客户端的最大消息内容大小,可选字段,缺省为 512K
consumerRegTimeoutMs否longconsumer 心跳超时时间,可选项,单位毫秒,默认 30 秒
socketRecvBuffer否longSocket 接收 Buffer 缓冲区 SO_RCVBUF 大小,单位字节,负数为不做设置以缺省值为准
socketSendBuffer否longSocket 发送 Buffer 缓冲区 SO_SNDBUF 大小,单位字节,负数为不做设置以缺省值为准
tcpWriteServiceThread否intBroker 支持 TCP 生产服务的 socket worker 线程数,可选字段,缺省为所在机器的 2 倍 CPU 个数
tcpReadServiceThread否intBroker 支持 TCP 消费服务的 socket worker 线程数,可选字段,缺省为所在机器的 2 倍 CPU 个数
logClearupDurationMs否long消息文件的老化清理周期, 单位为毫秒, 缺省为 3 分钟进行一次日志清理操作,最低 1 分钟
logFlushDiskDurMs否long批量检查消息持久化到文件的检查周期,单位为毫秒, 缺省为 20 秒进行一次全量的检查及刷盘
visitTokenCheckInValidTimeMs否longvisitToken 检查时允许 Broker 注册后延迟检查的时长,单位 ms,缺省 120000,取值范围 [60000,300000]
visitMasterAuth否boolean是否启用上报 Master 鉴权,缺省为 false,如果为 true,则会在上报 Master 的信令里加入用户名及签名信息
visitName否String访问 Master 的用户名,缺省为空字符串,在 visitMasterAuth 为 true 时该值必须存在,该值必须与 master.ini 里的 visitName 字段值同
visitPassword否String访问 Master 的密码,缺省为空字符串,在 visitMasterAuth 为 true 时该值必须存在,该值必须与 master.ini 里的 visitPassword 字段值同
logFlushMemDurMs否long批量检查消息内存持久化到文件的检查周期,单位为毫秒, 缺省为 10 秒进行一次全量的检查及刷盘
enableWriteOffset2Zk否boolean是否将消费组 Offset 记录同时写 ZooKeeper,缺省 false,不写入
offsetStgFilePath否String消费组 Offset 记录的文件保存路径,缺省为 primaryPath 目录下
grpOffsetStgExpMs否long未更新的消费组 Offset 记录在文件里的保存周期,单位 ms, 缺省值为 20 天(20 24 60 60 1000)
offsetStgCacheFlushMs否long消费组 Offset 记录更新到缓存的周期,单位 ms, 缺省值为 5000ms
offsetStgFileSyncMs否long消费组 Offset 记录从缓存同步到文件的周期,单位 ms, 缺省值为 offsetStgCacheFlushMs + 1000ms
offsetStgSyncDurWarnMs否long消费组 Offset 记录从缓存同步到文件时间超长告警值,单位 ms, 缺省值为 20000ms

[tlsSetting]

Broker 启用 TLS 时通过该配置单元提供相关的设置,可选单元,值固定为 "[tlsSetting]"

配置项是否必选值类型配置说明
tlsEnable否boolean是否启用 TLS 功能,可选配置,缺省为 false
tlsPort否intBroker 的 TLS 端口号,可选配置,缺省为 8124
tlsKeyStorePath否StringTLS 的 keyStore 文件的绝对存储路径 + keyStore 文件名,在启动 TLS 功能时,该字段必填且不能为空
tlsKeyStorePassword否StringTLS 的 keyStorePassword 文件的绝对存储路径 + keyStorePassword 文件名,在启动 TLS 功能时,该字段必填且不能为空
tlsTwoWayAuthEnable否boolean是否启用 TLS 双向认证功能,可选配置,缺省为 false
tlsTrustStorePath否StringTLS 的 TrustStore 文件的绝对存储路径 + TrustStore 文件名,在启动 TLS 功能且启用双向认证时,该字段必填且不能为空
tlsTrustStorePassword否StringTLS 的 TrustStorePassword 文件的绝对存储路径 + TrustStorePassword 文件名,在启动 TLS 功能且启用双向认证时,该字段必填且不能为空

[audit]

Broker 使用审计模块来报告数据设置单元,启用审计时,配置单元提供相关设置,该可选配置单位有一个固定值 " [audit] "

配置项是否必选值类型配置说明
auditEnable否boolean是否启用审计上报功能,可选配置,缺省为 false
auditProxyAddr否String审计上报地址,格式必须是 " ip1:port1,ip2:port2,ip3:port3 ", 缺省值为 127.0.0.1:10081
auditCacheFilePath否String审计上报数据的缓存文件路径,缺省为 " /data/inlong/audit "
auditCacheMaxRows否int最大审计缓存的数据条数,缺省为 2000000 条
auditIdProduce否int上报生产数据的审计 ID,缺省值为 9
auditIdConsume否int上报消费数据的审计 ID,缺省值为 10

[prometheus]

Broker 使用 prometheus 提供指标数据查询时的相关配置单元设置,可选配置单元集合 " [prometheus] "

配置项是否必选值类型配置说明
promEnable否boolean是否启用 prometheus 服务,可选配置,缺省为 false
promClusterName否String启用 prometheus 服务时 服务节点所属于的集群名,缺省值为 " InLong "
promHttpPort否int启用 prometheus 服务时的侦听端口,可选配置,缺省值为 9081

Back to top