开发者社区 > 云原生 > 消息队列 > 正文

RocketMQ我一个Demo项目中同样的一个消息生产者请求会报两个完全不同的错误怎么办?

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上的,同步双写双主双从。我发现好像几个组件间的网络发现不是很稳定?同样的命令有时能输出结果有时输不出
65e385f499b102c6d839fb260d181074.jpg
然后第二个error这个topic也是创了的
fbcaa92a885980c3feb3e06afe2eb5a2.jpg

展开
收起
你鞋带开了~ 2024-03-05 23:56:37 47 0
2 条回答
写回答
取消 提交回答
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    这个问题可能是由于RocketMQ的NameServer没有正确获取到Topic的路由信息导致的。你可以尝试以下方法来解决这个问题:

    1. 检查RocketMQ的配置文件,确保NameServer的配置是正确的。特别是检查brokerClusterNamebrokerNamebrokerId等参数是否正确设置。

    2. 确保你的生产者和消费者使用的是相同的NameServer地址。如果它们使用了不同的NameServer地址,可能会导致生产者无法找到正确的Topic路由信息。

    3. 检查你的K8s集群的网络配置,确保所有的RocketMQ组件之间的网络通信是正常的。你可以使用pingtelnet命令来测试不同组件之间的网络连通性。

    4. 如果问题仍然存在,你可以尝试重启RocketMQ的NameServer和Broker组件,以便它们能够重新加载配置并获取最新的Topic路由信息。

    5. 如果以上方法都无法解决问题,建议查看RocketMQ的日志文件,以获取更多关于错误的详细信息。这有助于进一步诊断问题所在。

    2024-03-06 13:26:54
    赞同 展开评论 打赏
  • 直接这样, 可以打印每一个命令11be20fcb5e0aee5127b10b9238c259c.png
    也可以输出每个命令的入参32c02a978fda4165b7dd43e10c811e87.png
    --此回答整理自钉群“群2-Apache RocketMQ 中国开发者钉钉群”

    2024-03-06 13:09:18
    赞同 展开评论 打赏

高弹性低成本、更稳定更安全、智能化免运维的消息队列服务,涵盖RocketMQ、Kafka、RabbitMQ、MQTT、MNS等。 RocketMQ一站式学习:https://rocketmq-learning.com

相关产品

  • 云消息队列 MQ
  • 热门讨论

    热门文章

    相关电子书

    更多
    RocketMQ Client-GO 介绍 立即下载
    RocketMQ Prometheus Exporter 打造定制化 DevOps 平台 立即下载
    基于 RocketMQ Prometheus Exporter 打造定制化 DevOps 平台 立即下载