1.no route info of this topic
这个问题就是rocketmq没有床topic,需要broker启动命令上加入自动创建topic。或则在配置上修改,自动创建topic为true。
配置修改:autoCreateTopicEnable=true;启动命令为:nohup sh bin/mqbroker -n namesrvAddr:9876 -c conf/broker.conf autoCreateTopicEnable=true &配置如图:
2.连接不上broker地址
connect to ip:9876:10911
启动broker后,我们要查看一下broker的日志,如果broker地址是namesrv的地址加上10911的端口才是正常的,我这里出现9876这个端口在加上10911这个端口的原因就是因为配置中的namesrvAddr和brokerIP1配置错了,两个地址整反了,brokerIP1的地址是namesrvAddr的ip,后面没有端口号!切记!没有端口号! namesrvAddr才是公网ip加9876这个端口号,如上图
3.我的rocketmq相关命令
启动namesrv
nohup sh bin/mqnamesrv &
启动broker
启动命令,并且常驻内存:注意ip地址要配置成为服务的ip地址,保证地址以及端口能够访问。并且指定配置文件启动
nohup sh bin/mqbroker -c conf/broker.conf autoCreateTopicEnable=true &
关闭broker
sh bin/mqshutdown broker
关闭namesrv
sh bin/mqshutdown namesrv
4.注意事项
a.如果开启了防火墙,服务器和外界交互的相关端口,如:9876,10911,10912,10909,一定要打开,或则直接关闭防火墙,但是不推荐关闭防火墙
这里是防火墙的相关命令
查看防火墙,开放的端口号
firewall-cmd --zone=public --list-ports
防火墙为某个端口开放权限,添加后记得重新加载配置
firewall-cmd --zone=public --add-port=80/tcp --permanent
重新加载防火墙配置
firewall-cmd --reload
查看防火墙状态
systemctl status firewalld
打开防火墙,重启后不生效
systemctl start firewalld
关闭防火墙,重启后不生效
systemctl stop firewalld
打开防火墙,重启后也生效
systemctl enable firewalld
关闭防火墙,重启后不生效
systemctl disable firewalld
b.如果试用的是云服务器,云服务器的安全组端口一定要打开,我使用的是阿里云,下面是安全组的相关步骤
- 控制台
- 云服务器ECS,下述两个地方都可以找到
- 实例
- 更多->网络和安全组->安全组配置
我这里是配置的所有端口,你们也可以这样配置,也可以单独配置需要开放的端口