配置参数

1 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文件中:

配置参数 - 图1

他们的配置是按照配置单元集合来定义的,Master配置由必选的[master]、可选择的必选[meta_zookeeper]、[meta_bdb]和可选的[tlsSetting]一共4个配置单元组成,Broker配置由必选的[broker]、[zookeeper]和可选的[tlsSetting]一共3个配置单元组成;实际使用时,大家也可将两个配置文件内容合并放置为一个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前端页面配置文件。

配置参数 - 图2

2 配置项详情:

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

配置单元配置项是否必选值类型配置说明
[master]配置单元[master]是Master系统运行主配置单元,必填单元,值固定为”[master]”
hostNameStringMaster对外服务的主机地址,必填项,必须在网卡中已配置,处于启用状态,非回环且不能为127.0.0.1的IP
portintMaster监听的端口,可选项,缺省值为8715
webPortintMaster Web控制台的访问端口,缺省值为8080
webResourcePathStringMaster Web Resource部署绝对路径,必填项,该值设置不正确时Web页面将不能正常显示
confModAuthTokenString通过Master的Web或API做变更操作(包括增、删、改配置,以及变更Master及管理的Broker状态)时操作者需要提供的授权Token,该值可选,缺省为”ASDFGHJKL”
firstBalanceDelayAfterStartMslongMaster启动至首次开始Rebalance的时间间隔,可选项,缺省30000毫秒
consumerBalancePeriodMslongMaster对消费组进行Rebalance的均衡周期,可选项,缺省60000毫秒,当集群规模较大时,请调大该值
consumerHeartbeatTimeoutMslong消费者心跳超时周期,可选项,缺省30000毫秒,当集群规模较大时,请调大该值
producerHeartbeatTimeoutMslong生产者心跳超时周期,可选项,缺省30000毫秒,当集群规模较大时,请调大该值
brokerHeartbeatTimeoutMslongBroker心跳超时周期,可选项,缺省30000毫秒,当集群规模较大时,请调大该值
rebalanceParallelintMaster Rebalance处理并行度,可选项,缺省4,取值范围[1, 20], 当集群规模较大时,请调大该值
socketRecvBufferlongSocket接收Buffer缓冲区SO_RCVBUF大小,单位字节, 负数为不做设置以缺省值为准
socketSendBufferlongSocket发送Buffer缓冲区SO_SNDBUF大小,单位字节, 负数为不做设置以缺省值为准
maxAutoForbiddenCntintBroker出现IO故障时最大允许Master自动下线Broker个数,可选项,缺省为5,建议该值不超过集群内Broker总数的10%
startOffsetResetCheckboolean是否启用客户端Offset重置功能的检查功能,可选项,缺省为false
needBrokerVisitAuthboolean是否启用Broker访问鉴权,缺省为false,如果为true,则Broker上报的消息里必须携带正确的用户名及签名信息
visitNameStringBroker访问鉴权的用户名,缺省为空字符串,在needBrokerVisitAuth为true时该值必须存在,该值必须与broker.ini里的visitName字段值同
visitPasswordStringBroker访问鉴权的密码,缺省为空字符串,在needBrokerVisitAuth为true时该值必须存在,该值必须与broker.ini里的visitPassword字段值同
startVisitTokenCheckboolean是否启用客户端visitToken检查,缺省为false
startProduceAuthenticateboolean是否启用生产端用户认证,缺省为false
startProduceAuthorizeboolean是否启用生产端生产授权认证,缺省为false
startConsumeAuthenticateboolean是否启用消费端用户认证,缺省为false
startConsumeAuthorizeboolean是否启用消费端消费授权认证,缺省为false
maxGroupBrokerConsumeRateint集群Broker数与消费组里成员数的最大比值,可选项,缺省为50,50台Broker集群里允许1个消费组最少启动1个客户端消费
[meta_zookeeper]条件配置单元元数据存储到ZooKeeper时的配置单元,[meta_bdb]与[meta_zookeeper]二选一
zkServerAddrStringzk服务器地址,可选配置,缺省为”localhost:2181”
zkNodeRootStringzk上的节点根目录路径,可选配置,缺省为”/tubemq”
zkSessionTimeoutMslongzk心跳超时,单位毫秒,默认30秒
zkConnectionTimeoutMslongzk连接超时时间,单位毫秒,默认30秒
zkSyncTimeMslongzk数据同步时间,单位毫秒,默认5秒
zkCommitPeriodMslongMaster缓存数据刷新到zk上的时间间隔,单位毫秒,默认5秒
zkMasterCheckPeriodMslong当前节点是否为Master角色的检查周期,单位毫秒,缺省为5秒
[meta_bdb]条件配置单元元数据存储到BDB时的配置单元,[meta_bdb]与[meta_zookeeper]二选一
repGroupNameString集群名,所属主备Master节点值必须相同,可选字段,缺省为”tubemqMasterGroup”
repNodeNameString所属Master在集群中的节点名,该值各个节点必须不重复,必填字段
metaDataPathStringMetadata存储路径,可以是绝对路径、或者相对TubeMQ安装目录(”$BASE_DIR”)的相对路径。缺省为”var/meta_data”
repNodePortint节点复制通讯端口,可选字段,缺省为9001
repHelperHostString集群启动时的主节点,可选字段,缺省为”127.0.0.1:9001”
metaLocalSyncPolicyint数据节点本地保存方式,该字段取值范围[1,2,3],缺省为1:其中1为数据保存到磁盘,2为数据只保存到内存,3为只将数据写文件系统buffer,但不刷盘
metaReplicaSyncPolicyint数据节点同步保存方式,该字段取值范围[1,2,3],缺省为1:其中1为数据保存到磁盘,2为数据只保存到内存,3为只将数据写文件系统buffer,但不刷盘
repReplicaAckPolicyint节点数据同步时的应答策略,该字段取值范围为[1,2,3],缺省为1:其中1为超过1/2多数为有效,2为所有节点应答才有效;3为不需要节点应答
repStatusCheckTimeoutMslong节点状态检查间隔,可选字段,单位毫秒,缺省为10秒
[tlsSetting]配置单元[tlsSetting]是Master采用TLS进行传输层数据加密,启用TLS时通过该配置单元提供相关的设置,可选单元,值固定为”[tlsSetting]”
tlsEnableboolean是否启用TLS功能,可选配置,缺省为false
tlsPortintMaster的TLS端口号,可选配置,缺省为8716
tlsKeyStorePathStringTLS的keyStore文件的绝对存储路径+keyStore文件名,在启动TLS功能时,该字段必填且不能为空
tlsKeyStorePasswordStringTLS的keyStorePassword文件的绝对存储路径+keyStorePassword文件名,在启动TLS功能时,该字段必填且不能为空
tlsTwoWayAuthEnableboolean是否启用TLS双向认证功能,可选配置,缺省为false
tlsTrustStorePathStringTLS的TrustStore文件的绝对存储路径+TrustStore文件名,在启动TLS功能且启用双向认证时,该字段必填且不能为空
tlsTrustStorePasswordStringTLS的TrustStorePassword文件的绝对存储路径+TrustStorePassword文件名,在启动TLS功能且启用双向认证时,该字段必填且不能为空

注意

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

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

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

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

配置单元配置项是否必选值类型配置说明
[broker]配置单元[broker]是Broker系统运行主配置单元,必填单元,值固定为”[broker]”
brokerIdint服务器唯一标志,必填字段,可设为0;设为0时系统将默认取本机IP转化为int值再取abs绝对值,避免brokerId为负数,如果使用环境的IP比较复杂存在生成的brokerId值冲突时,则需要指定brokerId值进行设置。
hostNameStringBroker对外服务的主机地址,必填项,必须在网卡中已配置,处于启用状态,非回环且不能为127.0.0.1的IP
portintBroker监听的端口,可选项,缺省值为8123
webPortintBroker的http管理访问端口,可选项,缺省为8081
masterAddressListStringBroker所属集群的Master地址列表,必填字段,格式必须是ip1:port1,ip2:port2,ip3:port3
primaryPathStringBroker存储消息的绝对路径,必选字段
maxSegmentSizeintBroker存储消息Data内容的文件大小,可选字段,缺省512M,最大1G
maxIndexSegmentSizeintBroker存储消息Index内容的文件大小,可选字段,缺省18M,约70W条消息每文件
transferSizeintBroker允许每次传输给客户端的最大消息内容大小,可选字段,缺省为512K
consumerRegTimeoutMslongconsumer心跳超时时间,可选项,单位毫秒,默认30秒
socketRecvBufferlongSocket接收Buffer缓冲区SO_RCVBUF大小,单位字节,负数为不做设置以缺省值为准
socketSendBufferlongSocket发送Buffer缓冲区SO_SNDBUF大小,单位字节,负数为不做设置以缺省值为准
tcpWriteServiceThreadintBroker支持TCP生产服务的socket worker线程数,可选字段,缺省为所在机器的2倍CPU个数
tcpReadServiceThreadintBroker支持TCP消费服务的socket worker线程数,可选字段,缺省为所在机器的2倍CPU个数
logClearupDurationMslong消息文件的老化清理周期, 单位为毫秒, 缺省为3分钟进行一次日志清理操作,最低1分钟
logFlushDiskDurMslong批量检查消息持久化到文件的检查周期,单位为毫秒, 缺省为20秒进行一次全量的检查及刷盘
visitTokenCheckInValidTimeMslongvisitToken检查时允许Broker注册后延迟检查的时长,单位ms,缺省120000,取值范围[60000,300000]
visitMasterAuthboolean是否启用上报Master鉴权,缺省为false,如果为true,则会在上报Master的信令里加入用户名及签名信息
visitNameString访问Master的用户名,缺省为空字符串,在visitMasterAuth为true时该值必须存在,该值必须与master.ini里的visitName字段值同
visitPasswordString访问Master的密码,缺省为空字符串,在visitMasterAuth为true时该值必须存在,该值必须与master.ini里的visitPassword字段值同
logFlushMemDurMslong批量检查消息内存持久化到文件的检查周期,单位为毫秒, 缺省为10秒进行一次全量的检查及刷盘
[zookeeper]配置单元[zookeeper]是Broker对应的Tube MQ集群存储Offset的ZooKeeper集群相关信息,必填单元,值固定为”[zookeeper]”
zkServerAddrStringzk服务器地址,可选配置,缺省为”localhost:2181”
zkNodeRootStringzk上的节点根目录路径,可选配置,缺省为”/tubemq”
zkSessionTimeoutMslongzk心跳超时,单位毫秒,默认30秒
zkConnectionTimeoutMslongzk连接超时时间,单位毫秒,默认30秒
zkSyncTimeMslongzk数据同步时间,单位毫秒,默认5秒
zkCommitPeriodMslongBroker缓存数据刷新到zk上的时间间隔,单位毫秒,默认5秒
zkCommitFailRetriesintBroker刷新缓存数据到Zk失败后的最大重刷次数
[tlsSetting]配置单元[tlsSetting]是Master采用TLS进行传输层数据加密,启用TLS时通过该配置单元提供相关的设置,可选单元,值固定为”[tlsSetting]”
tlsEnableboolean是否启用TLS功能,可选配置,缺省为false
tlsPortintBroker的TLS端口号,可选配置,缺省为8124
tlsKeyStorePathStringTLS的keyStore文件的绝对存储路径+keyStore文件名,在启动TLS功能时,该字段必填且不能为空
tlsKeyStorePasswordStringTLS的keyStorePassword文件的绝对存储路径+keyStorePassword文件名,在启动TLS功能时,该字段必填且不能为空
tlsTwoWayAuthEnableboolean是否启用TLS双向认证功能,可选配置,缺省为false
tlsTrustStorePathStringTLS的TrustStore文件的绝对存储路径+TrustStore文件名,在启动TLS功能且启用双向认证时,该字段必填且不能为空
tlsTrustStorePasswordStringTLS的TrustStorePassword文件的绝对存储路径+TrustStorePassword文件名,在启动TLS功能且启用双向认证时,该字段必填且不能为空

Back to top