redis的局域网访问问题Could not get a resource from the pool

项目场景:

redis是一款高效的内存存储工具,通过常用于高速缓存数据。当调试公司代码时,遇到外网访问redis服务器的问题,记录解决问题的调试过程,以方便有类似问题的伙伴借鉴


问题描述

当前项目基于spingMVC+dubbo框架,并采用redis做缓存,整个系统被拆分为16个独立项目,都做为微服务并单独步署。在调试项目时遇到开发机联接测试机redis服务器报错,Could not get a resource from the pool 在这里插入图片描述

原因分析:

获取不到资源,的原因主要还是redis的配置问题导致的,而处理docker中的redis的设置

当前很多服务一般情况下都会部署在docker中,笔者也不例外,docker默认启动时与宿主机的网络模式为桥接模式(bridge),在这种模式下,docker会为每个容器创建一个虚拟网络接口,并将这个接口连接到一个内部的网络桥接器。每个容器都有自己的内部IP地址,所以当在这种模式下启动redis集群时,


解决方案:

获取不到资源,的原因主要还是redis的配置问题导致的,而处理docker中的redis的设置

在redis中的配置主要是2点
1)redis.conf中的bind配置
把bind 的ip地址设置为0.0.0.0
bind 0.0.0.0

在这里插入图片描述

2)启动集群时指定docker宿主机的ip
使用–cluster-announce-ip 192.168.x.x(换成宿主机能被外网访问的ip)

再来启动redis集群,命令为如下样子:
redis服务服务1:
redis-server 7000-redis.conf --cluster-announce-ip 192.168.0.x

redis-server 7001-redis.conf --cluster-announce-ip 192.168.0.x

redis-server 7002-redis.conf --cluster-announce-ip 192.168.0.x

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值