RocketMQ我一个Demo项目中同样的一个消息生产者请求会报两个完全不同的错误怎么办?
java.lang.IllegalArgumentException: Message type is not specified
org.apache.rocketmq.client.java.exception.NotFoundException: [request-id=81a4674e-1c34-4a36-9f94-ffbfc2c825e6, response-code=40402] CODE: 17 DESC: No topic route info in name server for the topic: TestTopic
然后我是把rockermq部署在k8s上的,同步双写双主双从。我发现好像几个组件间的网络发现不是很稳定?同样的命令有时能输出结果有时输不出
然后第二个error这个topic也是创了的
这个问题可能是由于RocketMQ的NameServer没有正确获取到Topic的路由信息导致的。你可以尝试以下方法来解决这个问题:
检查RocketMQ的配置文件,确保NameServer的配置是正确的。特别是检查brokerClusterName
、brokerName
和brokerId
等参数是否正确设置。
确保你的生产者和消费者使用的是相同的NameServer地址。如果它们使用了不同的NameServer地址,可能会导致生产者无法找到正确的Topic路由信息。
检查你的K8s集群的网络配置,确保所有的RocketMQ组件之间的网络通信是正常的。你可以使用ping
或telnet
命令来测试不同组件之间的网络连通性。
如果问题仍然存在,你可以尝试重启RocketMQ的NameServer和Broker组件,以便它们能够重新加载配置并获取最新的Topic路由信息。
如果以上方法都无法解决问题,建议查看RocketMQ的日志文件,以获取更多关于错误的详细信息。这有助于进一步诊断问题所在。
直接这样, 可以打印每一个命令
也可以输出每个命令的入参
--此回答整理自钉群“群2-Apache RocketMQ 中国开发者钉钉群”
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
涵盖 RocketMQ、Kafka、RabbitMQ、MQTT、轻量消息队列(原MNS) 的消息队列产品体系,全系产品 Serverless 化。RocketMQ 一站式学习:https://rocketmq.io/