redis cluster 集群跨网段调用问题

问题1:

redis cluster 集群部署在阿里云上,服务部署在公司内网服务器,redis创建 clsuter集群时使用内网ip ,服务中指定redis集群的公网ip和端口,指定服务每隔 30s 刷新一次redis的集群拓扑。服务报错,连接不到内网ip 和端口,原因是刷新 redis 拓扑时获取到的 ip 是创建 clsuter 集群时使用内网 ip
​

解决:

将创建redsi cluster 集群指定的ip换成公网 ip 

问题2:

将创建redsi cluster 集群指定的ip换成公网 ip 后,服务可用。但是服务获取redis拓扑时会同时获取到公网和内网的ip 一共12个节点,可能会造成redis无法确定master 和 slave 节点,所以进行进一步处理

解决:

首先在配置文件中使用 bind 指定 公网ip ,redis重启失败,没有找到指定的网卡,ip a 查看后,服务器没有公网网卡
​
通过询问GPT,发现 advertised-hostname 参数,可以强制 Redis 向集群中的其他节点以及客户端报告特定的外部 IP 地址。
​
在配置文件中添加
cluster-announce-ip <外部公网IP>
cluster-announce-port <Redis实例端口>
cluster-announce-bus-port <集群通信端口>
​

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值