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

rocket mq4.8.0,自动创建话题设置为false,客户端一直打warn,no topic?

rocket mq4.8.0,自动创建话题设置为false,客户端一直打warn,no topic TBW102, 大佬们有知道原因或者解决办法的吗?image.png

展开
收起
真的很搞笑 2023-07-03 16:14:57 127 0
3 条回答
写回答
取消 提交回答
  • 对于RocketMQ 4.8.0版本,当自动创建话题设置为false时,出现"no topic TBW102"的警告可能是由于以下原因之一:

    1. 未手动创建话题:当自动创建话题设置为false时,如果没有手动创建话题,当客户端向不存在的话题发送消息时,就会出现该警告。请确保在使用该话题之前,已经通过控制台或命令行工具手动创建了相应的话题。

    2. 话题名称错误:确保在发送消息时,指定的话题名称与实际创建的话题名称匹配。验证一下代码中的话题名称是否正确拼写、大小写是否一致,并且与手动创建的话题名称相匹配。

    3. 客户端配置问题:检查客户端的配置文件,确保自动创建话题参数(autoCreateTopicEnable)设置为false,并保存后重新启动客户端。还要确保所有的Broker和NameServer都已配置正确并在运行。

    2023-07-14 14:19:53
    赞同 展开评论 打赏
  • 北京阿里云ACE会长

    在 RocketMQ 4.8.0 中,如果自动创建话题设置为 false,当客户端尝试发送消息时,如果该话题不存在,会出现 "No topic" 的警告日志。这是因为客户端无法找到该话题,而不是因为话题创建失败。

    为了避免这个警告日志,可以在客户端启动时先手动创建话题。可以使用 DefaultMQAdminExt 类中的 createTopic 方法来创建话题。例如,以下是一个示例:

    ini
    Copy
    DefaultMQAdminExt admin = new DefaultMQAdminExt();
    admin.setNamesrvAddr("127.0.0.1:9876");
    admin.start();
    TopicConfig topicConfig = new TopicConfig("TopicTest");
    topicConfig.setReadQueueNums(4);
    topicConfig.setWriteQueueNums(4);
    admin.createTopic("TopicTest", topicConfig);
    admin.shutdown();
    在这个示例中,我们创建了一个名为 "TopicTest" 的话题,并设置了读写队列的数量。这个话题可以在客户端启动时手动创建,以避免 "No topic" 警告日志的出现。

    2023-07-14 08:02:41
    赞同 展开评论 打赏
  • 你好,楼主这是因为你设置了false后,当客户端请求一个不存在的topic后,服务端不会自动创建这个topic,所以报了 no tpic,可以手动创建一下这个topic哦。

    2023-07-03 16:53:06
    赞同 展开评论 打赏

涵盖 RocketMQ、Kafka、RabbitMQ、MQTT、轻量消息队列(原MNS) 的消息队列产品体系,全系产品 Serverless 化。RocketMQ 一站式学习:https://rocketmq.io/

相关产品

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

    热门文章

    相关电子书

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