[Bug] Bug title broker节点数据没有被同步为什么
- Dominant language
- Java
- Stars
- 22.6k
- Forks
- 12k
- Avg merge
- 2d 20h
- Merged PRs (30d)
- 26
Description
### Before Creating the Bug Report
- [x] I found a bug, not just asking a question, which should be created in [GitHub Discussions](https://github.com/apache/rocketmq/discussions).
- [x] I have searched the [GitHub Issues](https://github.com/apache/rocketmq/issues) and [GitHub Discussions](https://github.com/apache/rocketmq/discussions) of this repository and believe that this is not a duplicate.
- [x] I have confirmed that this bug belongs to the current repository, not other repositories of RocketMQ.
### Runtime platform environment
# broker-1配置文件
brokerClusterName=rocketmq5
brokerName=rocketmq-broker
brokerIP1=rocketmq-broker-1.rocketmq-broker.rocketmq-test
enableNameServerAddressResolve=true
enableControllerMode=true
controllerAddr=rocketmq-controller-0.rocketmq-controller.rocketmq-test:9878;rocketmq-controller-1.rocketmq-controller.rocketmq-test:9878;rocketmq-controller-2.rocketmq-controller.rocketmq-test:9878
# 地址解析 (适用于云原生或动态环境),Namesrv是无状态需要解析所有节点
fetchNamesrvAddrByAddressServer=true
# 无头服务形式连接需要关闭
fetchControllerAddrByDnsLookup=false
# =========================================================
# 高可用 (HA) 和数据同步设置 (解决数据丢失的关键配置)
# =========================================================
# 要求同步状态集 (SyncStateSet) 中的所有副本确认消息后,才返回发送成功给生产者
allAckInSyncStateSet=true
# 开启从节点 (Slave/Follower) 读取权限(实现读写分离,分担 Master 压力)
slaveReadEnable=true
# =========================================================
# 通用配置
# =========================================================
traceOn=true
autoCreateTopicEnable=true
autoCreateSubscriptionGroup=true
enableIncrementalTopicCreation=true
generateConfigForScaleOutEnable=false
enableNotifyAfterPopOrderLockRelease=true
autoMessageVersionOnTopicLen=true
# =========================================================
# 性能和线程设置
# =========================================================
# 处理发送消息请求的最大线程数(默认 1)
sendMessageThreadPoolNums=32
# 在存储消息时使用可重入锁
useReentrantLockWhenPutMessage=true
# 增加线程在发送队列中的等待时间,提高容忍度(原 900ms,现 3000ms)
waitTimeMillsInSendQueue=3000
# =========================================================
# 存储和刷盘设置
# =========================================================
# 刷盘类型:SYNC_FLUSH(同步刷盘) 或 ASYNC_FLUSH(异步刷盘)
flushDiskType=SYNC_FLUSH
# 消费队列存储路径 (需要自行定义路径,这里模板中未指定默认值,但可以添加 storePathConsumerQueue=/home/rocketmq/store/consumequeue 等)
# 启用瞬态存储池(堆外内存),设置为 false 表示直接写入 PageCache
transientStorePoolEnable=false
# 使用零拷贝技术进行消息传输(推荐,提高效率)
transferMsgByHeap=false
# 启用文件预热(性能优化)
warmMapedFileEnable=true
# 表示几点做消息删除动作,默认是凌晨4点
deleteWhen=04
# 在磁盘上保留消息的时长,单位是小时
fileReservedTime=48
# 最大消息大小 (5M)
maxMessageSize=5242880
# =========================================================
# 功能特性设置
# =========================================================
# 启用消息属性过滤 (SQL92)
enablePropertyFilter=true
# 事务消息配置
transactionCheckMaxTimeInMs=14400000
transactionCheckInterval=60000
# 延迟消息配置
timerWheelEnable=true
timerMaxDelaySec=86400
# POP 消费相关配置
enablePopBufferMerge=true
enableConsumePopRetryTopic=true
enableConsumePullRetryTopic=true
enableSkipLongWaitAck=true
# Stream 轻量级拉取模式
litePullMessageEnable=true
# broker-0配置文件
brokerClusterName=rocketmq5
brokerName=rocketmq-broker
brokerIP1=rocketmq-broker-0.rocketmq-broker.rocketmq-test
enableNameServerAddressResolve=true
enableControllerMode=true
controllerAddr=rocketmq-controller-0.rocketmq-controller.rocketmq-test:9878;rocketmq-controller-1.rocketmq-controller.rocketmq-test:9878;rocketmq-controller-2.rocketmq-controller.rocketmq-test:9878
# 地址解析 (适用于云原生或动态环境),Namesrv是无状态需要解析所有节点
fetchNamesrvAddrByAddressServer=true
# 无头服务形式连接需要关闭
fetchControllerAddrByDnsLookup=false
# =========================================================
# 高可用 (HA) 和数据同步设置 (解决数据丢失的关键配置)
# =========================================================
# 要求同步状态集 (SyncStateSet) 中的所有副本确认消息后,才返回发送成功给生产者
allAckInSyncStateSet=true
# 开启从节点 (Slave/Follower) 读取权限(实现读写分离,分担 Master 压力)
slaveReadEnable=true
# =========================================================
# 通用配置
# =========================================================
traceOn=true
autoCreateTopicEnable=true
autoCreateSubscriptionGroup=true
enableIncrementalTopicCreation=true
generateConfigForScaleOutEnable=false
enableNotifyAfterPopOrderLockRelease=true
autoMessageVersionOnTopicLen=true
# =========================================================
# 性能和线程设置
# =========================================================
# 处理发送消息请求的最大线程数(默认 1)
sendMessageThreadPoolNums=32
# 在存储消息时使用可重入锁
useReentrantLockWhenPutMessage=true
# 增加线程在发送队列中的等待时间,提高容忍度(原 900ms,现 3000ms)
waitTimeMillsInSendQueue=3000
# =========================================================
# 存储和刷盘设置
# =========================================================
# 刷盘类型:SYNC_FLUSH(同步刷盘) 或 ASYNC_FLUSH(异步刷盘)
flushDiskType=SYNC_FLUSH
# 消费队列存储路径 (需要自行定义路径,这里模板中未指定默认值,但可以添加 storePathConsumerQueue=/home/rocketmq/store/consumequeue 等)
# 启用瞬态存储池(堆外内存),设置为 false 表示直接写入 PageCache
transientStorePoolEnable=false
# 使用零拷贝技术进行消息传输(推荐,提高效率)
transferMsgByHeap=false
# 启用文件预热(性能优化)
warmMapedFileEnable=true
# 表示几点做消息删除动作,默认是凌晨4点
deleteWhen=04
# 在磁盘上保留消息的时长,单位是小时
fileReservedTime=48
# 最大消息大小 (5M)
maxMessageSize=5242880
# =========================================================
# 功能特性设置
# =========================================================
# 启用消息属性过滤 (SQL92)
enablePropertyFilter=true
# 事务消息配置
transactionCheckMaxTimeInMs=14400000
transactionCheckInterval=60000
# 延迟消息配置
timerWheelEnable=true
timerMaxDelaySec=86400
# POP 消费相关配置
enablePopBufferMerge=true
enableConsumePopRetryTopic=true
enableConsumePullRetryTopic=true
enableSkipLongWaitAck=true
# Stream 轻量级拉取模式
litePullMessageEnable=true
# controller配置,其他的只有jRaftServerId不同其他的一致
controllerType=jRaft
jRaftGroupId=jRaft-controller-group
jRaftServerId=rocketmq-controller-2.rocketmq-controller.rocketmq-test:9888
jRaftInitConf=rocketmq-controller-0.rocketmq-controller.rocketmq-test:9888,rocketmq-controller-1.rocketmq-controller.rocketmq-test:9888,rocketmq-controller-2.rocketmq-controller.rocketmq-test:9888
jRaftControllerRPCAddr=rocketmq-controller-0.rocketmq-controller.rocketmq-test:9878,rocketmq-controller-1.rocketmq-controller.rocketmq-test:9878,rocketmq-controller-2.rocketmq-controller.rocketmq-test:9878
jRaftSnapshotIntervalSecs=3600
controllerStorePath=/home/rocketmq/store
# 集群状态检查
```
rocketmq@rocketmq-controller-2:~/rocketmq-5.3.3/bin$ ./mqadmin clusterList -n rocketmq-nameserver:9876
#Cluster Name #Broker Name #BID #Addr #Version #InTPS(LOAD) #OutTPS(LOAD) #Timer(Progress) #PCWait(ms) #Hour #SPACE #ACTIVATED
rocketmq5 rocketmq-broker 0 rocketmq-broker-0.rocketmq-broker.rocketmq-test:10911 V5_3_3 0.00(0,0ms) 0.00(0,0ms|0,0ms) 0-0(0.0w, 0.0, 0.0) 0 489529.88 0.7500 true
rocketmq5 rocketmq-broker 2 rocketmq-broker-1.rocketmq-broker.rocketmq-test:10911 V5_3_3 0.00(0,0ms) 0.00(0,0ms|0,0ms) 1-0(0.0w, 0.0, 0.0) 0 489529.88 0.7600 false
rocketmq@rocketmq-controller-2:~/rocketmq-5.3.3/bin$ sh mqadmin getSyncStateSet -a "rocketmq-controller-0.rocketmq-controller:9878;rocketmq-controller-1.rocketmq-controller:9878;rocketmq-controller-2.rocketmq-controller:9878" -b rocketmq-broker
#brokerName rocketmq-broker
#MasterBrokerId 1
#MasterAddr rocketmq-broker-0.rocketmq-broker.rocketmq-test:10911
#MasterEpoch 1
#SyncStateSetEpoch 2
#SyncStateSetNums 2
InSyncReplica: ReplicaIdentity{brokerName='rocketmq-broker', brokerId=1, brokerAddress='rocketmq-broker-0.rocketmq-broker.rocketmq-test:10911', alive=true}
InSyncReplica: ReplicaIdentity{brokerName='rocketmq-broker', brokerId=2, brokerAddress='rocketmq-broker-1.rocketmq-broker.rocketmq-test:10911', alive=true}
```
# 可以看到所有状态一起正常,创建Topic 消费和生产消息一切正常,但是broker节点数据没有被同步为什么,这是Rocketmq 5版本
### RocketMQ version
rocketmq-5.3.3
### JDK Version
_No response_
### Describe the Bug
创建Topic 消费和生产消息一切正常,但是broker节点数据没有被同步为什么,这是Rocketmq 5版本
### Steps to Reproduce
1
### What Did You Expect to See?
1
### What Did You See Instead?
1
### Additional Context
_No response_
Contributor guide
Assessment
This issue has not been assessed yet.