RocketMQ ——踩坑

1.MQClientException: No route info of this topic, TopicTest1

在客户端的 Producer 运行起来准备发送消息时抛异常如下“ No route info of this topic ” ,原因是因为Producer 没有正确连接到 Name Server

自己没有在防护墙中开启此Broker 端口,所以导致客户端 Producer 无论如何也连接不上.

[root@localhost apache-rocketmq]# firewall-cmd --zone=public --list-ports
8090/tcp 80/tcp 8080/tcp
[root@localhost apache-rocketmq]# firewall-cmd --zone=public --add-port=9876/tcp --permanent
success
[root@localhost apache-rocketmq]# firewall-cmd --reload
success
[root@localhost apache-rocketmq]# firewall-cmd --zone=public --list-ports
9876/tcp 8090/tcp 80/tcp 8080/tcp
[root@localhost apache-rocketmq]# 

命令分别含义是:

  1. 查看防护墙开放的端口,此时没有 9876
  2. 设置防火墙开放9876 端口
  3. 重新加载 firewall,修改配置后,必须重新加载才能生效:firewall-cmd --reload 
  4. 再次查看防火墙开放的端口,此时已有 9876

 

2.RemotingTooMuchRequestException: sendDefaultImpl call timeout

在客户端的 Producer 运行起来准备发送消息时抛出来的异常

因为使用的是VMware虚拟机,设置内存也只有1G,所以从 Windows 上开发连接 虚拟机中的 nameServer 时要经过 Linux 系统的防火墙,而防火墙一般都会有超时的机制,在网络连接长时间不传输数据时,会关闭这个 TCP 的会话,关闭后再读写,就有可能导致这个异常。

因为目前是自己学习,所以直接关闭了 Linux 的防火墙

[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]#  systemctl status firewalld
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
   Active: inactive (dead) since 日 2018-08-12 00:19:39 CST; 2s ago
  Process: 877 ExecStart=/usr/sbin/firewalld --nofork --nopid $FIREWALLD_ARGS (code=exited, status=0/SUCCESS)
 Main PID: 877 (code=exited, status=0/SUCCESS)
 
8月 11 23:20:50 localhost.localdomain systemd[1]: Starting firewalld - dynamic firewall.....
8月 11 23:20:53 localhost.localdomain systemd[1]: Started firewalld - dynamic firewall ...n.
8月 12 00:19:38 localhost.localdomain systemd[1]: Stopping firewalld - dynamic firewall.....
8月 12 00:19:39 localhost.localdomain systemd[1]: Stopped firewalld - dynamic firewall ...n.
Hint: Some lines were ellipsized, use -l to show in full.
[root@localhost ~]# 

 

3

在阿里云上部署节点,使用console控制台去连接节点时,总是去连接阿里云的内网ip:10911

这是由于线上环境有多个网卡,默认情况下MQ很可能走的是内网的IP(因内网网卡排在外网网卡前面)所以要在RocketMQ的配置文件中把阿里云的公网IP加上:

RocketMQ ——踩坑_第1张图片

 

4

当启动节点后查看节点状态出现下面情况时

我们应该去查看日志文件定位错误原因:zookeeper.out 

你可能感兴趣的:(中间件)