apache / rocketmq

Apache RocketMQ is a cloud native messaging and streaming platform, making it simple to build event-driven applications.
https://rocketmq.apache.org/
Apache License 2.0
21.19k stars 11.67k forks source link

Code: 10007 Property [CLUSTER] is null #2660

Closed DokiDoki1103 closed 1 year ago

DokiDoki1103 commented 3 years ago

在此之前我看过两个issue:https://github.com/apache/rocketmq-spring/issues/243https://github.com/apache/rocketmq/issues/1901
他们说降级为4.6.0不会发生此错误,我没有进行尝试,我rocketmq版本是4.8.0,依然存在CODE: 10007 property[CLUSTER] is null.错误,而且没有找到设置CLUSTER的地方,希望予以修复!

2021/2/6日补充: 降级4.6.0后此bug消失,没有尝试4.7.0版本,但是测试仍然4.8.0版本存在此bug

环境: IDEA 2020.2 rocketmq 4.8.0 rocketmq-spring-boot-starter 2.2.0

根据官网的示例代码,生产消息之后,等待回复,消费者进行消费,消费者可以获取到消息内容,但是回复时候报错如下

org.apache.rocketmq.client.exception.MQClientException: CODE: 10007 DESC: create reply message fail, requestMessage error, property[CLUSTER] is null. For more information, please visit the url, http://rocketmq.apache.org/docs/faq/ at org.apache.rocketmq.client.utils.MessageUtil.createReplyMessage(MessageUtil.java:46) ~[rocketmq-client-4.8.0.jar:4.8.0] at org.apache.rocketmq.spring.support.DefaultRocketMQListenerContainer.handleMessage(DefaultRocketMQListenerContainer.java:399) ~[rocketmq-spring-boot-2.2.0.jar:2.2.0] at org.apache.rocketmq.spring.support.DefaultRocketMQListenerContainer.access$100(DefaultRocketMQListenerContainer.java:70) ~[rocketmq-spring-boot-2.2.0.jar:2.2.0] at org.apache.rocketmq.spring.support.DefaultRocketMQListenerContainer$DefaultMessageListenerConcurrently.consumeMessage(DefaultRocketMQListenerContainer.java:354) ~[rocketmq-spring-boot-2.2.0.jar:2.2.0] at org.apache.rocketmq.client.impl.consumer.ConsumeMessageConcurrentlyService$ConsumeRequest.run(ConsumeMessageConcurrentlyService.java:412) [rocketmq-client-4.8.0.jar:4.8.0] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [na:1.8.0_77] at java.util.concurrent.FutureTask.run(FutureTask.java:266) [na:1.8.0_77] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_77] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_77] at java.lang.Thread.run(Thread.java:745) [na:1.8.0_77]

RongtongJin commented 3 years ago

我用rockemq4.8.0作为服务端,用rocketmq-spring-boot-starter 2.2.0作为客户端进行测试,并没有复现该问题。 之前的问题在4.7.1被修复。所以1.确认下是否正确连接到4.8.0的服务端2.该问题是偶发还是必现的?

DokiDoki1103 commented 3 years ago

两台服务器安装rocketmq,测试均不行,都会报以上错误,在我这里是必现的。

RongtongJin commented 3 years ago

两台服务器安装rocketmq,测试均不行,都会报以上错误,在我这里是必现的。

服务端的版本应该没有修改过社区的源码吧。“降级4.6.0后此bug消失”是因为走SendMessageProcessor的sendMessage方法,而从4.7.0开始走SendMessageProcessor的asyncSendMessage方法,之前由于asyncSendMessage缺少设置cluster属性导致上述问题,在4.7.1之后被修复。

如果是必现的可否在本机进行debug找出问题原因?

ShannonDing commented 3 years ago

我用rockemq4.8.0作为服务端,用rocketmq-spring-boot-starter 2.2.0作为客户端进行测试,并没有复现该问题。 之前的问题在4.7.1被修复。所以1.确认下是否正确连接到4.8.0的服务端2.该问题是偶发还是必现的?

使用4.8.0的代码直接编译部署下试试。可以mqadmin命令看下客户端是否真实链接上来了。

lizhimins commented 3 years ago

同使用4.8.0的编译部署,没有复现该问题,可否提供更多信息

junqingzh commented 2 years ago

broker 版本用的 : rocketmq-all-4.9.2-bin-release.zip 运行 官网的示例代码,用当前最新的版本4.9.3-SNAPSHOT

rocketmq-all org.apache.rocketmq 4.9.3-SNAPSHOT

example/rpc
mvn exec:java -Dexec.mainClass="org.apache.rocketmq.example.rpc.ResponseConsumer" Consumer Started. mvn exec:java -Dexec.mainClass="org.apache.rocketmq.example.rpc.RequestProducer" 生产消息之后,等待回复,3秒后超时报异常: RocketMQLog:WARN Please initialize the logger system properly. org.apache.rocketmq.client.exception.RequestTimeoutException: CODE: 10006 DESC: send request message to OK, but wait reply message timeout, 3000 ms. at org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl.waitResponse(DefaultMQProducerImpl.java:1543) at org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl.request(DefaultMQProducerImpl.java:1419) at org.apache.rocketmq.client.producer.DefaultMQProducer.request(DefaultMQProducer.java:600) at org.apache.rocketmq.example.rpc.RequestProducer.main(RequestProducer.java:40) at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:254) at java.lang.Thread.run(Thread.java:748)

过了好半天, 消费者获取到消息内容,但是回复时候报错如下: ConsumeMessageThread_1 Receive New Messages: [MessageExt [brokerName=broker-b, queueId=2, storeSize=275, queueOffset=0, sysFlag=0, bornTimestamp=1639832919532, bornHost=/192.168.3.212:58578, storeTimestamp=1639832919591, storeHost=/10.106.161.8:10911, msgId=0A6AA10800002A9F00000002519EC36E, commitLogOffset=9959293806, bodyCRC=198614610, reconsumeTimes=0, preparedTransactionOffset=0, toString()=Message{topic='RequestTopic', flag=0, properties={MIN_OFFSET=0, REPLY_TO_CLIENT=10.10.1.52@11852#322394473677153, MAX_OFFSET=1, CONSUME_START_TIME=1639832947679, UNIQ_KEY=7F0000012E4C23D8E7965C1599EB0000, WAIT=true, TTL=3000, CORRELATION_ID=8456100b-a9d5-4d7a-9860-dc9f887b985f}, body=[72, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100], transactionId='null'}]] handle message: MessageExt [brokerName=broker-b, queueId=2, storeSize=275, queueOffset=0, sysFlag=0, bornTimestamp=1639832919532, bornHost=/192.168.3.212:58578, storeTimestamp=1639832919591, storeHost=/10.106.161.8:10911, msgId=0A6AA10800002A9F00000002519EC36E, commitLogOffset=9959293806, bodyCRC=198614610, reconsumeTimes=0, preparedTransactionOffset=0, toString()=Message{topic='RequestTopic', flag=0, properties={MIN_OFFSET=0, REPLY_TO_CLIENT=10.10.1.52@11852#322394473677153, MAX_OFFSET=1, CONSUME_START_TIME=1639832947679, UNIQ_KEY=7F0000012E4C23D8E7965C1599EB0000, WAIT=true, TTL=3000, CORRELATION_ID=8456100b-a9d5-4d7a-9860-dc9f887b985f}, body=[72, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100], transactionId='null'}]org.apache.rocketmq.client.exception.MQClientException: CODE: 10007 DESC: create reply message fail, requestMessage error, property[CLUSTER] is null. For more information, please visit the url, http://rocketmq.apache.org/docs/faq/ at org.apache.rocketmq.client.utils.MessageUtil.createReplyMessage(MessageUtil.java:46) at org.apache.rocketmq.example.rpc.ResponseConsumer$1.consumeMessage(ResponseConsumer.java:63) at org.apache.rocketmq.client.impl.consumer.ConsumeMessageConcurrentlyService$ConsumeRequest.run(ConsumeMessageConcurrentlyService.java:392) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748)

我的环境为 4.9.2 双主集群, 但是在4.9.2 单主集群尝试,问题仍旧。 按 @ RongtongJin 所说 4.7.1 修复,但运行 4.7.1 单集群模式后运行 rpc example 问题仍旧。

github-actions[bot] commented 1 year ago

This issue is stale because it has been open for 365 days with no activity. It will be closed in 3 days if no further activity occurs.

github-actions[bot] commented 1 year ago

This issue was closed because it has been inactive for 3 days since being marked as stale.