标签:.com 代码 它的 image style color 链接 end 发送消息
最近在使用rocketmq 发送消息,出现了No route info of this topic 异常,但奇怪的是我的其它的服务都可以成功发送,唯有crs服务不能成功发送,在网上搜索的解决方式基本上都是:
ocketmq运行时提示 No route info of this topic 异常产生的原因可能是
①Broker禁止自动创建Topic,且用户没有通过手工方式创建Topic
②Broker没有正确连接到Name Server
③Producer没有正确连接到Name Server
这三种,我的貌似哪一种都不是因为我的其它服务可以成功发送,于是手动调试代码,发现了一个隐藏的错误,我的服务却没有打印出来:
send request to <ip:9876> failed
java.lang.NoSuchMethodError: io.netty.channel.ChannelPromise.unvoid()Lio/netty/channel/ChannelPromise;
这个是在producer 在 调用
updateTopicRouteInfoFromNameServer 的时候报的错。
原来rocketmq会使用netty作为底层的链接。那为什么我的rocketmq会找不到方法呢?我的版本也是对的。难道是我引用了别的netty把rockentmq的给替换掉了吗?仔细检查了pom,果然如此
我真的引用了netty-all这个依赖,我怎么会引用这个依赖呢???决心去掉它尝试看看能不能发送成功,果然成功了。真的是它的原因。。。所以,有时候问题不一定就是你想的那样,还得像大神说的那样多跟踪源码才可以呀。
对了,我使用的rocketmq的版本是:4.3.2。
rocketMQ No route info of this topic 错误
标签:.com 代码 它的 image style color 链接 end 发送消息
原文地址:https://www.cnblogs.com/bfyq/p/10790359.html