【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 &

这些步骤做完之后在运行一下程序估计就不会有什么大问题了!当然以上都是建立在你的程序没有问题的基础上!

相关推荐

  1. RocketMQ-Bug】RocketMQ 使用常见问题

    2023-12-20 07:00:04       68 阅读
  2. Redis使用常见问题及解决方案

    2023-12-20 07:00:04       63 阅读
  3. 微服务使用过程 常见问题 解决方案

    2023-12-20 07:00:04       63 阅读
  4. vue常见使用

    2023-12-20 07:00:04       44 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-20 07:00:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-20 07:00:04       100 阅读
  3. 在Django里面运行非项目文件

    2023-12-20 07:00:04       82 阅读
  4. Python语言-面向对象

    2023-12-20 07:00:04       91 阅读

热门阅读

  1. Spring Boot测试 - JUnit整合及模拟Mvc

    2023-12-20 07:00:04       62 阅读
  2. ubuntu22.04制作pycharm的桌面快捷方式

    2023-12-20 07:00:04       56 阅读
  3. 单元测试框架jUnit

    2023-12-20 07:00:04       62 阅读
  4. 漫谈UNIX、Linux、UNIX-Like

    2023-12-20 07:00:04       48 阅读
  5. ModBus TCP

    2023-12-20 07:00:04       54 阅读
  6. word的docx模板导出,poi

    2023-12-20 07:00:04       65 阅读
  7. 502 Bad Gateway with nginx + apache + subversion + ssl

    2023-12-20 07:00:04       70 阅读
  8. 【openssl】Linux升级openssl-1.0.1到1.1.1

    2023-12-20 07:00:04       85 阅读