阿里云RocketMQ:No route info of this topic, com.aliyun.openservices.ons.api.exception

使用阿里云的RocketMQ,但是发现本地调试会报错和自己预期的不一样,主要报错是"No route info of this topic,com.aliyun.openservices.ons.api.exception",采用的是人家推荐的TCP协议方式,而且用的也是人家demo示例代码,但是在本地运行发现有问题,就是生产者报错“No route info of topic" ,消费者没有报错,但是完全没有去查询,关于MQ消息的打印也没有。

使用了RAM账号对应的accessKey和accessID试过没用,就用主账户的也是同样的报错,迫不得已提了个工单,因为实在没办法,文档走了一遍,用的也是提供的示例代码。包括网上的方案也都试了,包括那个防火墙的问题,关闭了防火墙换个网也都没用。

处理的结果就是,引起这个问题大概是两个:
(1)RAM账户权限问题
一个就是用的RAM账户的AccessKey和AccessSecret的权限不够,RAM账户有的权限是只可以发,有的只可以收,有的是都可以,所以可以让主账户授权RAM(当然有的时候用主账户的就OK)

(2)ECS地域问题
这个很坑,就是你想测试的话,比如说你要本地测试消费者,消费ECS上的生产者发布的消息,这个是不行的,你要把这个代码放在同一地域上的ECS上,只要是同一地域可以通过内网活互相访问,你本地是不可以的,别跟我说你用的是什么电信,你只能不知道同一地域的ECS上,生产者在华东1区,那你消费者也要在华东1区。

希望会对有类似的情况的人有帮助,当然也有可能以后规则会变。

你可能感兴趣的:(阿里云RocketMQ:No route info of this topic, com.aliyun.openservices.ons.api.exception)