# 文件: /data/rocketmq/conf/broker-a.conf # 在Controller模式下,Broker配置必须设置 enableControllerMode=true,并填写 controllerAddr,并以下面命令启动: # $ nohup sh bin/mqbroker -c broker.conf & # 自动主备切换模式下Broker无需指定brokerId和brokerRole,其由Controller组件进行分配 # Broker 集群名称 brokerClusterName = ProdCluster # Broker 逻辑组名称(主从一致) brokerName=broker-a # 设置为 0 表示主节点 # brokerId=0 # Broker 角色:同步主节点到从节点 # brokerRole=SYNC_MASTER # 启动acl规则 # aclEnable=true # 磁盘刷写方式:同步刷下磁盘 flushDiskType=SYNC_MASTER # Broker 对外端口 listenPort=10911 # NameServer 地址(多个以分号分隔) namesrvAddr=172.24.16.13:9876 # Broker 外部访问 IP brokerIP1 = 172.24.16.10 # 文件保留时间(小时) fileReservedTime=48 # 定时清理文件时间 (天) deleteWhen=04 # 是否自动创建 Topic autoCreateTopicEnable = false # 启用主从机制 enableControllerMode = true # Controller地址 controllerAddr=172.24.16.13:9876 # 向 controller 同步 Broker 副本信息的时间间隔 syncBrokerMetadataPeriod = 5000 # 检查 SyncStateSet 的时间间隔,检查 SyncStateSet 可能会 shrink SyncState checkSyncStateSetPeriod = 5000 # 同步 controller 元数据的时间间隔,主要是获取 active controller 的地址 syncControllerMetadataPeriod = 10000 # 表示 Slave 没有跟上 Master 的最大时间间隔,若在 SyncStateSet 中的 slave 超过该时间间隔会将其从 SyncStateSet 移除 haMaxTimeSlaveNotCatchup = 15000 # 存储 epoch 文件的位置 storePathEpochFile = /data/rocketmq/store/epoch # 若该值为 true,则一条消息需要复制到 SyncStateSet 中的每一个副本才会向客户端返回成功,可以保证消息不丢失。 allAckInSyncStateSet = false # 若 slave 是空盘启动,是否从最后一个文件进行复制。 syncFromLastFile = false # 若该值为 true,则该副本不会进入 SyncStateSet,也就是不会被选举成 Master,而是一直作为一个 learner 副本进行异步复制。 asyncLearner = false # 需保持同步的副本组数量,默认为1,allAckInSyncStateSet=true 时该参数无效 inSyncReplicas = 1 # 最小需保持同步的副本组数量,若 SyncStateSet 中副本个数小于 minInSyncReplicas 则 putMessage 直接返回 PutMessageStatus.IN_SYNC_REPLICAS_NOT_ENOUGH minInSyncReplicas = 1 # Broker-A 主节点存储路径 storePathRootDir=/data/rocketmq/store/broker-a storePathCommitLog=/data/rocketmq/store/broker-a/commitlog storePathConsumeQueue=/data/rocketmq/store/broker-a/consumequeue storePathIndex=/data/rocketmq/store/broker-a/index storeCheckpoint=/data/rocketmq/store/broker-a/checkpoint abortFile=/data/rocketmq/store/broker-a/abort