【Bug/Redis集群】连接公网集群失败问题

在阿里云上搭建了四台Linux服务器,每台运行Redis作为主节点的集群。当尝试使用SpringBoot的yaml配置连接Redis集群时,出现连接超时的问题。通过在Spring容器中动态创建RedisClusterConfiguration@Bean,手动添加每个节点,成功解决了连接失败的问题。
摘要由CSDN通过智能技术生成

1 问题

在阿里云上租了四台linux服务器,因为是4个账号白嫖的不在同一个局域网,但是有4个公网IP。在每一台服务器上安装redis,并搭建为一个四台主服务器,无从服务器的集群。

搭建好后redis-cli -c -h 某个node的IP:6379在每一台服务器上连接到其他服务器都是能连通的。

但是之后在使用Spring Boot出现了问题,在yaml配置文件中配置:

spring:
    data:
        redis:
            cluster:
                nodes: IP1:6379,IP2:6379,IP3:6379,IP4:6379

开启之后,会报出这样的错误:
Unable to connect to [172.20.24.62/<unresolved>:6379]: connection timed out:...
配置的外网IP会报出一个内网IP连接失败。

2 解决

不要在yaml中配置,在Spring容器中创建一个Redis集群配置Bean:

@Bean
public RedisConnectionFactory redisConnectionFactory() {
    RedisClusterConfiguration config = new RedisClusterConfiguration();
    config.addClusterNode(new RedisNode("IP1", 6379));
    config.addClusterNode(new RedisNode("IP2", 6379));
    config.addClusterNode(new RedisNode("IP3", 6379));
    config.addClusterNode(new RedisNode("IP4", 6379));
    return new JedisConnectionFactory(config);
}

这样就可以正常连接了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值