You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@rocketmq.apache.org by "zhongxiaoyi738 (via GitHub)" <gi...@apache.org> on 2025/02/28 07:33:20 UTC
[D] rocketMQ4.9.2 不同broker之间的consumer offset没有同步,enableDLegerCommitLog=true [rocketmq]
GitHub user zhongxiaoyi738 created a discussion: rocketMQ4.9.2 不同broker之间的consumer offset没有同步,enableDLegerCommitLog=true
**[rocketmq@broker-01-68d4859b4d-b7gq7 bin]$ more /opt/conf/broker-01.conf**
brokerClusterName = DefaultCluster
brokerName=broker-01
listenPort=31863
brokerIP1=10.7.30.237
autoCreateTopicEnable=true
autoCreateSubscriptionGroup=true
maxMessageSize=65535
flushDiskType=ASYNC_FLUSH
deleteWhen=04
fileReservedTime=48
mapedFileSizeCommitLog=1073741824
mapedFileSizeConsumeQueue=30000
diskMaxUsedSpaceRatio=88
storePathRootDir=/home/rocketmq/store/node00
storePathCommitLog=/home/rocketmq/store/node00/commitlog
enableDLegerCommitLog=true
dLegerGroup=RaftNode00
dLegerPeers=n1-broker-01.rocketmq-flow.svc.cluster.local:40911;n2-broker-02.rocketmq-flow.svc.cluster.local:40911;n3-broker-03.rocketmq-flow.svc.cluster.local:40911
## must be unique
dLegerSelfId=n1
sendMessageThreadPoolNums=16
**[rocketmq@broker-02-84cc5b59fb-d2n2r bin]$ more /opt/conf/broker-02.conf**
brokerClusterName = DefaultCluster
brokerName=broker-02
listenPort=31866
brokerIP1=10.7.30.237
autoCreateTopicEnable=true
autoCreateSubscriptionGroup=true
maxMessageSize=65535
flushDiskType=ASYNC_FLUSH
deleteWhen=04
fileReservedTime=48
mapedFileSizeCommitLog=1073741824
mapedFileSizeConsumeQueue=30000
diskMaxUsedSpaceRatio=88
storePathRootDir=/home/rocketmq/store/node00
storePathCommitLog=/home/rocketmq/store/node00/commitlog
enableDLegerCommitLog=true
dLegerGroup=RaftNode00
dLegerPeers=n1-broker-01.rocketmq-flow.svc.cluster.local:40911;n2-broker-02.rocketmq-flow.svc.cluster.local:40911;n3-broker-03.rocketmq-flow.svc.cluster.local:40911
## must be unique
dLegerSelfId=n2
sendMessageThreadPoolNums=16
**[rocketmq@broker-03-584bb8879d-5b9tq bin]$ more /opt/conf/broker-03.conf**
brokerClusterName = DefaultCluster
brokerName=broker-03
listenPort=31869
brokerIP1=10.7.30.237
autoCreateTopicEnable=true
autoCreateSubscriptionGroup=true
maxMessageSize=65535
flushDiskType=ASYNC_FLUSH
deleteWhen=04
fileReservedTime=48
mapedFileSizeCommitLog=1073741824
mapedFileSizeConsumeQueue=30000
diskMaxUsedSpaceRatio=88
storePathRootDir=/home/rocketmq/store/node00
storePathCommitLog=/home/rocketmq/store/node00/commitlog
enableDLegerCommitLog=true
dLegerGroup=RaftNode00
dLegerPeers=n1-broker-01.rocketmq-flow.svc.cluster.local:40911;n2-broker-02.rocketmq-flow.svc.cluster.local:40911;n3-broker-03.rocketmq-flow.svc.cluster.local:40911
## must be unique
dLegerSelfId=n3
sendMessageThreadPoolNums=16
**broker-02**
#Topic #Group #Broker Name #QID #Broker Offset #Consumer Offset #Diff #LastTime
ANALYSIS_TEMPLATE_TO_CARD_UPD ANALYSIS_TEMPLATE_TO_CARD_UPD broker-02 0 133 133 0 2025-01-19 14:43:05
ANALYSIS_TEMPLATE_TO_CARD_UPD ANALYSIS_TEMPLATE_TO_CARD_UPD broker-02 1 121 121 0 2025-01-20 15:13:56
ANALYSIS_TEMPLATE_TO_CARD_UPD ANALYSIS_TEMPLATE_TO_CARD_UPD broker-02 2 135 134 1 2025-01-19 14:43:05
ANALYSIS_TEMPLATE_TO_CARD_UPD ANALYSIS_TEMPLATE_TO_CARD_UPD broker-02 3 121 121 0 2025-01-19 14:43:35
broker-03
#Topic #Group #Broker Name #QID #Broker Offset #Consumer Offset #Diff #LastTime
ANALYSIS_TEMPLATE_TO_CARD_UPD ANALYSIS_TEMPLATE_TO_CARD_UPD broker-03 0 133 133 0 2025-01-19 14:43:05
ANALYSIS_TEMPLATE_TO_CARD_UPD ANALYSIS_TEMPLATE_TO_CARD_UPD broker-03 1 121 121 0 2025-01-20 15:13:56
ANALYSIS_TEMPLATE_TO_CARD_UPD ANALYSIS_TEMPLATE_TO_CARD_UPD broker-03 2 135 135 0 2025-02-27 16:39:54
ANALYSIS_TEMPLATE_TO_CARD_UPD ANALYSIS_TEMPLATE_TO_CARD_UPD broker-03 3 121 121 0 2025-01-19 14:43:35
GitHub link: https://github.com/apache/rocketmq/discussions/9216
----
This is an automatically sent email for dev@rocketmq.apache.org.
To unsubscribe, please send an email to: dev-unsubscribe@rocketmq.apache.org
Re: [D] rocketMQ4.9.2 不同broker之间的consumer offset没有同步,enableDLegerCommitLog=true [rocketmq]
Posted by "zhongxiaoyi738 (via GitHub)" <gi...@apache.org>.
GitHub user zhongxiaoyi738 added a comment to the discussion: rocketMQ4.9.2 不同broker之间的consumer offset没有同步,enableDLegerCommitLog=true
nameserver && broker 都没有报错日志哦
GitHub link: https://github.com/apache/rocketmq/discussions/9216#discussioncomment-12446251
----
This is an automatically sent email for dev@rocketmq.apache.org.
To unsubscribe, please send an email to: dev-unsubscribe@rocketmq.apache.org
Re: [D] rocketMQ4.9.2 不同broker之间的consumer offset没有同步,enableDLegerCommitLog=true [rocketmq]
Posted by "francisoliverlee (via GitHub)" <gi...@apache.org>.
GitHub user francisoliverlee added a comment to the discussion: rocketMQ4.9.2 不同broker之间的consumer offset没有同步,enableDLegerCommitLog=true
DLeger模式只涉及commitlog是raft的, 元数据应该还是一样同步。不过貌似有个bug,dleger模式不能为null,不过我没有验证, 你可以打日志check下
https://github.com/apache/rocketmq/blob/c840b208337b26c7529602b81d398c0a87a23888/broker/src/main/java/org/apache/rocketmq/broker/BrokerController.java#L1139
GitHub link: https://github.com/apache/rocketmq/discussions/9216#discussioncomment-12469162
----
This is an automatically sent email for dev@rocketmq.apache.org.
To unsubscribe, please send an email to: dev-unsubscribe@rocketmq.apache.org
Re: [D] rocketMQ4.9.2 不同broker之间的consumer offset没有同步,enableDLegerCommitLog=true [rocketmq]
Posted by "zhongxiaoyi738 (via GitHub)" <gi...@apache.org>.
GitHub user zhongxiaoyi738 added a comment to the discussion: rocketMQ4.9.2 不同broker之间的consumer offset没有同步,enableDLegerCommitLog=true
补充问题
rocketMQ4.9.2,开启enableDLegerCommitLog=true
topic、consumerOffset等元数据,是如何同步的?
GitHub link: https://github.com/apache/rocketmq/discussions/9216#discussioncomment-12458948
----
This is an automatically sent email for dev@rocketmq.apache.org.
To unsubscribe, please send an email to: dev-unsubscribe@rocketmq.apache.org
Re: [D] rocketMQ4.9.2 不同broker之间的consumer offset没有同步,enableDLegerCommitLog=true [rocketmq]
Posted by "zhongxiaoyi738 (via GitHub)" <gi...@apache.org>.
GitHub user zhongxiaoyi738 edited a comment on the discussion: rocketMQ4.9.2 不同broker之间的consumer offset没有同步,enableDLegerCommitLog=true
请问你提到的这个bug有修复么?
我加了调试日志
2025-03-11 15:45:33 INFO BrokerControllerScheduledThread1 - xiaoyi----syncTopicConfig masterAddrBak=null, brokerController.getBrokerAddr()=10.2.30.171:31879
GitHub link: https://github.com/apache/rocketmq/discussions/9216#discussioncomment-12471129
----
This is an automatically sent email for dev@rocketmq.apache.org.
To unsubscribe, please send an email to: dev-unsubscribe@rocketmq.apache.org
Re: [D] rocketMQ4.9.2 不同broker之间的consumer offset没有同步,enableDLegerCommitLog=true [rocketmq]
Posted by "zhongxiaoyi738 (via GitHub)" <gi...@apache.org>.
GitHub user zhongxiaoyi738 added a comment to the discussion: rocketMQ4.9.2 不同broker之间的consumer offset没有同步,enableDLegerCommitLog=true
补充,从节点的日志摘录(刚刚启动时有报错,但是后续恢复正常了)
[rocketmq@broker-02-7dcffbb679-jmxlb rocketmqlogs]$ more broker_default.log
2025-03-11 16:10:46 INFO main - instrumented a special java.util.Set into: sun.nio.ch.EPollSelectorImpl@458c1321
2025-03-11 16:11:46 INFO voteInvokeExecutor_3 - [n2][GetVoteResponse] {"code":200,"term":-1,"voteResult":"UNKNOWN"}
2025-03-11 16:11:47 INFO QuorumAckChecker-n2 - [n2][CANDIDATE] term=24 ledgerBegin=1374454 ledgerEnd=1746357 committed=1746357 watermarks={}
2025-03-11 16:11:49 INFO StateMaintainer - [n2] [PARSE_VOTE_RESULT] cost=2600 term=24 memberNum=3 allNum=2 acceptedNum=0 notReadyTermNum=0 biggerLedgerNum=0 alreadyHasLeader=false maxTerm=24 result=WAIT_TO_REVOTE
2025-03-11 16:11:49 INFO NettyServerPublicExecutor_3 - [n2][ChangeRoleToFollower] from term: 24 leaderId: n1 and currTerm: 24
2025-03-11 16:11:49 ERROR voteInvokeExecutor_4 - Send vote request failed, info[group=RaftNode00,term=24,code=200,local=null,remote=n3,leader=n2]
org.apache.rocketmq.remoting.exception.RemotingConnectException: connect to broker-03.rocketmq-flow.svc.cluster.local:40911 failed
at org.apache.rocketmq.remoting.netty.NettyRemotingClient.invokeAsync(NettyRemotingClient.java:535) ~[rocketmq-remoting-4.9.2.jar:4.9.2]
at io.openmessaging.storage.dledger.DLedgerRpcNettyService.lambda$vote$3(DLedgerRpcNettyService.java:164) ~[dledger-0.2.2.jar:na]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[na:1.8.0_322]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[na:1.8.0_322]
at java.lang.Thread.run(Thread.java:750) ~[na:1.8.0_322]
2025-03-11 16:11:49 INFO voteInvokeExecutor_4 - [n2][GetVoteResponse] {"code":200,"term":-1,"voteResult":"UNKNOWN"}
2025-03-11 16:11:50 INFO QuorumAckChecker-n2 - [n2][FOLLOWER] term=24 ledgerBegin=1374454 ledgerEnd=1746357 committed=1746357 watermarks={}
2025-03-11 16:11:53 INFO QuorumAckChecker-n2 - [n2][FOLLOWER] term=24 ledgerBegin=1374454 ledgerEnd=1746357 committed=1746357 watermarks={}
后面一直打印的日志,跟最后一行一致
GitHub link: https://github.com/apache/rocketmq/discussions/9216#discussioncomment-12458871
----
This is an automatically sent email for dev@rocketmq.apache.org.
To unsubscribe, please send an email to: dev-unsubscribe@rocketmq.apache.org
Re: [D] rocketMQ4.9.2 不同broker之间的consumer offset没有同步,enableDLegerCommitLog=true [rocketmq]
Posted by "zhongxiaoyi738 (via GitHub)" <gi...@apache.org>.
GitHub user zhongxiaoyi738 added a comment to the discussion: rocketMQ4.9.2 不同broker之间的consumer offset没有同步,enableDLegerCommitLog=true
brokerClusterName = DefaultCluster
**brokerName=broker-01**
listenPort=31863
brokerIP1=10.7.30.237
autoCreateTopicEnable=true
autoCreateSubscriptionGroup=true
maxMessageSize=65535
flushDiskType=ASYNC_FLUSH
deleteWhen=04
fileReservedTime=48
mapedFileSizeCommitLog=1073741824
mapedFileSizeConsumeQueue=30000
diskMaxUsedSpaceRatio=88
storePathRootDir=/home/rocketmq/store/node00
storePathCommitLog=/home/rocketmq/store/node00/commitlog
enableDLegerCommitLog=true
**dLegerGroup=RaftNode00**
dLegerPeers=**n1-broker-01**.rocketmq-flow.svc.cluster.local:40911;n2-broker-02.rocketmq-flow.svc.cluster.local:40911;n3-broker-03.rocketmq-flow.svc.cluster.local:40911
**dLegerSelfId=n1**
sendMessageThreadPoolNums=16
1、brokerName、dLegerGroup不一致
2、dLegerPeers 与 dLegerSelfId 不一致
请问这2个不一致会有影响么?
感觉BrokerController.handleSlaveSynchronize这个定时任务没有启动哦,jstack打印出来BrokerController只有一个线程
GitHub link: https://github.com/apache/rocketmq/discussions/9216#discussioncomment-12446867
----
This is an automatically sent email for dev@rocketmq.apache.org.
To unsubscribe, please send an email to: dev-unsubscribe@rocketmq.apache.org
Re: [D] rocketMQ4.9.2 不同broker之间的consumer offset没有同步,enableDLegerCommitLog=true [rocketmq]
Posted by "francisoliverlee (via GitHub)" <gi...@apache.org>.
GitHub user francisoliverlee added a comment to the discussion: rocketMQ4.9.2 不同broker之间的consumer offset没有同步,enableDLegerCommitLog=true
1、brokerName、dLegerGroup不一致
不影响
2、dLegerPeers 与 dLegerSelfId 不一致
dLegerSelfId是dLegerPeers的一部分。 具体看[这里](https://rocketmq.apache.org/zh/docs/bestPractice/02dledger#1-%E6%96%B0%E9%9B%86%E7%BE%A4%E9%83%A8%E7%BD%B2)
check [peer state change log in codes](https://github.com/apache/rocketmq/blob/c840b208337b26c7529602b81d398c0a87a23888/broker/src/main/java/org/apache/rocketmq/broker/BrokerController.java#L1160-L1226)
GitHub link: https://github.com/apache/rocketmq/discussions/9216#discussioncomment-12456891
----
This is an automatically sent email for dev@rocketmq.apache.org.
To unsubscribe, please send an email to: dev-unsubscribe@rocketmq.apache.org
Re: [D] rocketMQ4.9.2 不同broker之间的consumer offset没有同步,enableDLegerCommitLog=true [rocketmq]
Posted by "zhongxiaoyi738 (via GitHub)" <gi...@apache.org>.
GitHub user zhongxiaoyi738 added a comment to the discussion: rocketMQ4.9.2 不同broker之间的consumer offset没有同步,enableDLegerCommitLog=true
dLegerPeers=n1-broker-01.rocketmq-flow.svc.cluster.local:40911;n2-broker-02.rocketmq-flow.svc.cluster.local:40911;n3-broker-03.rocketmq-flow.svc.cluster.local:40911
dLegerSelfId=n1
我们这样配置,对么?
如果用域名,应该如何配置
GitHub link: https://github.com/apache/rocketmq/discussions/9216#discussioncomment-12458693
----
This is an automatically sent email for dev@rocketmq.apache.org.
To unsubscribe, please send an email to: dev-unsubscribe@rocketmq.apache.org
Re: [D] rocketMQ4.9.2 不同broker之间的consumer offset没有同步,enableDLegerCommitLog=true [rocketmq]
Posted by "francisoliverlee (via GitHub)" <gi...@apache.org>.
GitHub user francisoliverlee added a comment to the discussion: rocketMQ4.9.2 不同broker之间的consumer offset没有同步,enableDLegerCommitLog=true
any error logs?
[DLeger Model](DLeger) not suggest, try [Controller Mode](https://rocketmq.apache.org/zh/docs/deploymentOperations/03autofailover/)
GitHub link: https://github.com/apache/rocketmq/discussions/9216#discussioncomment-12370050
----
This is an automatically sent email for dev@rocketmq.apache.org.
To unsubscribe, please send an email to: dev-unsubscribe@rocketmq.apache.org
Re: [D] rocketMQ4.9.2 不同broker之间的consumer offset没有同步,enableDLegerCommitLog=true [rocketmq]
Posted by "zhongxiaoyi738 (via GitHub)" <gi...@apache.org>.
GitHub user zhongxiaoyi738 added a comment to the discussion: rocketMQ4.9.2 不同broker之间的consumer offset没有同步,enableDLegerCommitLog=true
我加了调试日志
2025-03-11 15:45:33 INFO BrokerControllerScheduledThread1 - xiaoyi----syncTopicConfig masterAddrBak=null, brokerController.getBrokerAddr()=10.2.30.171:31879
masterAddrBak为空,请问是哪里配置不对么?
GitHub link: https://github.com/apache/rocketmq/discussions/9216#discussioncomment-12471129
----
This is an automatically sent email for dev@rocketmq.apache.org.
To unsubscribe, please send an email to: dev-unsubscribe@rocketmq.apache.org
Re: [D] rocketMQ4.9.2 不同broker之间的consumer offset没有同步,enableDLegerCommitLog=true [rocketmq]
Posted by "zhongxiaoyi738 (via GitHub)" <gi...@apache.org>.
GitHub user zhongxiaoyi738 added a comment to the discussion: rocketMQ4.9.2 不同broker之间的consumer offset没有同步,enableDLegerCommitLog=true
hi,我改了一下rocketMQ的源码(加了很多调试日志),新增加的日志如下:(masterAddrBak=null)
2025-03-11 15:45:30 INFO DLegerRoleChangeHandler_1 - xiaoyi----handleSlaveSynchronize role=SLAVE
2025-03-11 15:45:30 INFO DLegerRoleChangeHandler_1 - xiaoyi----handleSlaveSynchronize ready slaveSyncFuture
2025-03-11 15:45:33 INFO BrokerControllerScheduledThread1 - xiaoyi----handleSlaveSynchronize run syncAll
2025-03-11 15:45:33 INFO BrokerControllerScheduledThread1 - xiaoyi----syncTopicConfig **masterAddrBak=null**, brokerController.getBrokerAddr()=10.2.30.171:31879
2025-03-11 15:45:33 INFO BrokerControllerScheduledThread1 - xiaoyi----syncConsumerOffset masterAddrBak=null, brokerController.getBrokerAddr()=10.2.30.171:31879
2025-03-11 15:45:33 INFO BrokerControllerScheduledThread1 - xiaoyi----syncDelayOffset masterAddrBak=null, brokerController.getBrokerAddr()=10.2.30.171:31879
2025-03-11 15:45:33 INFO BrokerControllerScheduledThread1 - xiaoyi----syncSubscriptionGroupConfig masterAddrBak=null, brokerController.getBrokerAddr()=10.2.30.171:31879
GitHub link: https://github.com/apache/rocketmq/discussions/9216#discussioncomment-12458652
----
This is an automatically sent email for dev@rocketmq.apache.org.
To unsubscribe, please send an email to: dev-unsubscribe@rocketmq.apache.org
Re: [D] rocketMQ4.9.2 不同broker之间的consumer offset没有同步,enableDLegerCommitLog=true [rocketmq]
Posted by "francisoliverlee (via GitHub)" <gi...@apache.org>.
GitHub user francisoliverlee added a comment to the discussion: rocketMQ4.9.2 不同broker之间的consumer offset没有同步,enableDLegerCommitLog=true
满足这个逻辑即可

GitHub link: https://github.com/apache/rocketmq/discussions/9216#discussioncomment-12468955
----
This is an automatically sent email for dev@rocketmq.apache.org.
To unsubscribe, please send an email to: dev-unsubscribe@rocketmq.apache.org