【RocketMQ-Bug】RocketMQ 在使用中的常见问题
2023-12-20 06:33:58
【RocketMQ-Bug】RocketMQ 在使用中的常见问题
这些异常都建立在亲测的基础上,后续有新异常会继续补充。
1)Producer 运行起来发送消息时抛出异常: No route info of this topic
1、broker 上不存在该 topic,创建该 topic 即可;注意:测试环境 topic 都是自动创建,偶尔会出现创建异常情况,使用手动创建保证创建成功;
2、broker 没有正确链接到name server上;
3、producer 没有正确连接到name server上;
2)RemotingTimeoutException: wait response on the channel timeout, xxx(ms)
1、这个异常本质就是 rpc 调用超时,rocket 的 rpc 请求都是异步的。这个异常表示发送成功后等待响应超过了最大等待时间。可能是有人发送了大消息,或者 rocket 发生了波动。可以适当的调整最大超时时间:setSendMsgTimeout
2、创建实例时,如果开启了 SSL,请开启 SSL:
import org.apache.rocketmq.client.producer.DefaultMQProducer;
import org.apache.rocketmq.client.producer.SendResult;
import org.apache.rocketmq.common.message.Message;
import org.apache.rocketmq.remoting.common.RemotingHelper;
public class Main {
public static void main(String[] args) {
DefaultMQProducer producer = new DefaultMQProducer("ProducerGroupName");
//填入连接地址
producer.setNamesrvAddr("192.168.0.1:8100");
producer.setUseTLS(true); //创建实例时,如果开启了SSL,请添加此行代码。
try {
producer.start();
Message msg = new Message("TopicTest",
"TagA",
"OrderID188",
"Hello world".getBytes(RemotingHelper.DEFAULT_CHARSET));
SendResult sendResult = producer.send(msg);
System.out.printf("%s%n", sendResult);
} catch (Exception e) {
e.printStackTrace();
}
producer.shutdown();
}
}
3)RemotingTooMuchRequestException: sendDefaultImpl call timeout
org.apache.rocketmq.remoting.exception.RemotingTooMuchRequestException: sendDefaultImpl call timeout
基本上是 ip 或网络的问题
可以尝试的解决方案:
1、首先来到rocketmq目录下,修改conf文件夹下broker.conf 文件当中的配置
vim conf/broker.conf
2、来到配置文件后在文件最后加上如下配置:
brokerIP1=101.200.xxx.xxx #这里的ip地址修改成自己服务器的ip地址
autoCreateTopicEnable=true
3、如果正在运行mqnamesvr还有mqbroker的话,需要先shutdown它们
#停止broker,这里是在rocketmq目录下,不是在bin目录下
sh bin/mqshutdown broker
#停止namesvr
sh bin/mqshutdown namesrv
4、重新运行mqnamesvr和mqbroker
#后台启动namesvr,这里的IP地址记得更换为自己的服务器
nohup sh bin/mqnamesrv -n "101.200.xxx.xxx:9876" &
#后台运用刚刚更改的配置文件启动mqbroker
nohup sh bin/mqbroker -n localhost:9876 -c conf/broker.conf autoCreateTopicEnable=true &
这些步骤做完之后在运行一下程序估计就不会有什么大问题了!当然以上都是建立在你的程序没有问题的基础上!
文章来源:https://blog.csdn.net/weixin_53543905/article/details/135077743
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!