RocketMQ参数已经打开了,还是无法自动创建topic,这是日志信息,要怎么解决?[阿里云]

2023-12-14 15:33:05 WARN SendMessageThread_3 – the topic yace01 not exist, producer: /192.168.110.6:32778
2023-12-14 15:33:05 WARN SendMessageThread_3 – Create new topic failed, because the default topic[TBW102] has no perm [6] producer:[192.168.110.6:32778]

RocketMQ参数已经打开了,还是无法自动创建topic,这是日志信息,哪位大佬帮忙看看,要怎么解决,可以手动创建 TBW102 这个默认的topic吗?

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
=====这是一个广告位,招租中,联系qq 78315851====
2 条回复 A 作者 M 管理员
  1. 你把perm改成7试试
    default topic[TBW102] has no perm [6] producer:[192.168.110.6:32778]
    默认主题没权限 ,此回答整理自钉群“群2-Apache RocketMQ 中国开发者钉钉群”

  2. 根据日志信息,问题出在默认的topic(TBW102)没有权限创建。你可以尝试以下方法解决这个问题:

    1. 检查RocketMQ的配置文件(如broker.conf),确保brokerRole设置为SYNC_MASTERSYNC_SLAVE,这样生产者才能创建主题。

    2. 如果brokerRole已经设置为正确的值,但仍然无法创建主题,请检查防火墙设置,确保内网端口(默认为9876)是开放的。

    3. 如果以上都没有问题,你可以尝试手动创建默认的topic(TBW102)。首先,你需要连接到RocketMQ的管理控制台,然后执行以下命令:

    createTopic -n TBW102 -c 1 -t 2

    这个命令会创建一个名为TBW102的主题,副本数为1,消息队列数为2。你可以根据实际情况调整这些参数。

  3. 根据您提供的日志信息,在RocketMQ中出现了两个警告:

    1. the topic yace01 not exist:表示在发送消息时,指定的主题(Topic)”yace01″ 不存在。

    2. Create new topic failed, because the default topic[TBW102] has no perm [6]:表示由于默认主题(Topic) “TBW102” 没有权限(perm [6]),导致创建新主题失败。

    针对这些问题,您可以采取以下解决方法:

    1. 手动创建默认主题:可以尝试手动在RocketMQ中创建名为 “TBW102” 的默认主题。您可以使用 RocketMQ提供的管理工具,如 mqadmin 或者通过命令行界面(CLI)执行相应的命令来创建主题。例如,使用 mqadmin 创建主题的命令如下:

      sh mqadmin updateTopic -n namesrv地址 -c DefaultCluster -t TBW102

      注意替换 namesrv地址 为您实际部署的NameServer地址。

    2. 确认权限配置:检查您是否正确配置了主题的权限。确保生产者拥有正确的权限用于发送消息和创建主题,并且消费者拥有正确的权限用于订阅消费消息。

    3. 配置自动创建主题:在RocketMQ的Broker配置文件(broker.conf)中,确保开启了自动创建主题的功能。确认以下配置项是否设置为 true

      enableAutoCreateTopic=true

      请注意,自动创建主题功能默认是开启的,如果您手动关闭了该功能,需要将其设置为 true

    当您完成上述解决方法后,重新启动RocketMQ集群和相关组件,然后再次尝试发送消息和创建主题。