【RocketMQ】 双主双从同步集群配置,发送消息返回状态码:SLAVE_NOT_AVAILABLE

一、现象

搭建了 rocketmq 的双主双从集群,在使用同步模式下,在向 master 发送消息时,返回的消息状态码为 SLAVE_NOT_AVAILABLE 

 

二、解决方式

这个问题是由于没有开放对应端口:

在配置文件中找到自己设置的 Master 开放端口:

rocketmq 默认端口:9876

配置的 ListenPort 端口:10911

vip 通道端口为:ListenPort - 2 = 10909

HA 通道端口为: ListenPort + 1 = 10912

需要检查 Master 是否打开了这两个端口

 

端口对应描述:

以配置的  ListenPort 为 10911 为例

端口号作用描述
9876nameserver 对外暴露的端口,允许消费者和生产者连接 
10909fastListen 端口

在消费者或生产者中配置 isVipChannel 为 false 即可

10912HA 高可用端口,用于主从同步,为 Master 常见新的 socket 连接若没有开放,则无法连接到 Slave

 

三、解决过程和原因

跟踪 log 日志

tail -f /~/log/rocketmqlogs/broker.log

发现使用了10911端口,但这是自己设置的 ListenPort 端口

初步猜测是由于端口没开放的原因,故关闭 Master 防火墙,再次发送消息,发现发送成功

由于是主从配置,猜测是某个被进程使用的端口没有对外暴露,查看当前进程使用的端口:

netstat -ntpl

找到 java 进程,有两个靠近我设置的 10911 端口的端口 10909、10912 被使用

经查询可得:

vip 通道端口为 ListenPort(10911-2) = 10909

HA 高可用端口为 ListenPort(10911+1) = 10912

那么,他们是否一定要对外暴露呢?

vip 通道端口一般没什么作用

而 HA 高可用端口用于主从集群时,创建 Master 和 Slave 之间的 socket 连接。故需要对外暴露

 

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值