rocketMQ No route info of this topic 错误

最近在使用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,果然如此

rocketMQ No route info of this topic 错误

我真的引用了netty-all这个依赖,我怎么会引用这个依赖呢???决心去掉它尝试看看能不能发送成功,果然成功了。真的是它的原因。。。所以,有时候问题不一定就是你想的那样,还得像大神说的那样多跟踪源码才可以呀。
对了,我使用的rocketmq的版本是:4.3.2。 另:
 RocketmqRemoting:95 info INFO: closeChannel: close the connection to remote address[39.107.153.215:9876] result: true 频繁打印这个,是因为jar包的问题
RocketmqRemoting:95 info INFO: closeChannel: close the connection to remote address[] result: true 频繁打印这个是nameserver地址错误的问题。
上一篇:关于Emit中动态类型TypeBuilder创建类标记的一点思考


下一篇:php输出json中文显示编码-解决办法