Spring Cloud Stream Rocketmq遇到的坑
RocketMQ Message hasn’t been sent. Caused by No route info of this topic, test-topic1
用docker装了rocketmq写了简单的demo怎么都运行不成功,尝试了各种方式,也没有成功,最终却是配置的问题。
name-server: xx.xx.xx.xx:9876
总结下网上的解决方案:
当遇到这个问题时,无非要考虑
①生产者连不上rocketmq server;
先用telnet指令尝试端口是否开放,其次考虑关闭防火墙,都不成功则可能是代码的问题。
②rocketmq server与broker之间连不通;
看broker的日志 或者执行在bin目录下执行命令sh mqadmin clusterList -n localhost:9876
③broker禁止自动创建Topic,且用户没有通过手工方式创建Topic。
解决方式broker.conf 添加:
autoCreateTopicEnable=true
手动添加指令,在bin目录下执行
sh mqadmin updateTopic -n xx.xx.xx.xx:9876 -b xx.xx.xx.xx:10911 -t test-topic
执此句可能会报找不到java的错,修改bin目录下tools.sh
且外,如果使用的是docker也要考虑内外网的问题,所以需要在broker.conf 添加:
brokerIP1=#本机外网ip