Java自学者论坛

 找回密码
 立即注册

手机号码,快捷登录

恭喜Java自学者论坛(https://www.javazxz.com)已经为数万Java学习者服务超过8年了!积累会员资料超过10000G+
成为本站VIP会员,下载本站10000G+会员资源,会员资料板块,购买链接:点击进入购买VIP会员

JAVA高级面试进阶训练营视频教程

Java架构师系统进阶VIP课程

分布式高可用全栈开发微服务教程Go语言视频零基础入门到精通Java架构师3期(课件+源码)
Java开发全终端实战租房项目视频教程SpringBoot2.X入门到高级使用教程大数据培训第六期全套视频教程深度学习(CNN RNN GAN)算法原理Java亿级流量电商系统视频教程
互联网架构师视频教程年薪50万Spark2.0从入门到精通年薪50万!人工智能学习路线教程年薪50万大数据入门到精通学习路线年薪50万机器学习入门到精通教程
仿小米商城类app和小程序视频教程深度学习数据分析基础到实战最新黑马javaEE2.1就业课程从 0到JVM实战高手教程MySQL入门到精通教程
查看: 424|回复: 0

redis中 Could not get a resource from the pool 异常解决

[复制链接]
  • TA的每日心情
    奋斗
    2024-11-24 15:47
  • 签到天数: 804 天

    [LV.10]以坛为家III

    2053

    主题

    2111

    帖子

    72万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    726782
    发表于 2021-5-3 03:20:54 | 显示全部楼层 |阅读模式

    今天在搞Spring结合JedisCluster操作Redis集群的时候突然发生了异常,令人不得费解...

    redis.clients.jedis.exceptions.JedisConnectionException Could not get a resource from the pool

     

    在度娘上查了好久的资料也没有解决,最终把问题定位到了集群的身上,果然...集群中有个节点晾凉了.

    好了开始解决问题吧(仅限于集群宕机或者与预期配置不符检测)


     

     

    怎么确认我们的集群有问题呢?

    1.连接你的任意一个集群节点客户端工具   ./redis-cli -p ip -c port -c

    这么里边多多输入一些内容进行测试,看看会不会报如下的这个错误(CRC16算法会自动进行slot的匹配,简单的测试就是set a a set b b...)
    127.0
    .0.1:8001> set nima nia -> Redirected to slot [16259] located at :0 Could not connect to Redis at :0: Name or service not known Could not connect to Redis at :0: Name or service not known not connected>

    2.通过redis-itrib.rb进行验证(默认这个文件是在你解压redis的src目录下面)

    ./redis-3.0.0/src/redis-trib.rb check IP:8001|more   8001意思是你的集群的任意一个端口|more 可以裂解为无限制它自动去扫描  


    [root@rebirth redis-cluster]# ./redis-trib.rb check 169.254.18.18:8001    我的redis-trib.rb在集群目录下面
    Connecting to node 169.254.18.18:8001: OK
    Connecting to node 169.254.18.18:8005: OK
    Connecting to node 169.254.18.18:8006: OK
    Connecting to node 169.254.18.18:8003: OK
    Connecting to node 169.254.18.18:8002: OK
    Connecting to node 169.254.18.18:8004: OK
    >>> Performing Cluster Check (using node 169.254.18.18:8001)
    M: d7d92360722c41bd710c9bfa8ebaff46df8230e2 169.254.18.18:8001
    slots:0-5460 (5461 slots) master
    1 additional replica(s)
    S: 6fa989430c84e882becc18af9064a89bf4a4d7de 169.254.18.18:8005
    slots: (0 slots) slave
    replicates cdba77220c27f07a24e7d93e61441a3219fac88d
    S: 4804979442ac59b91558b2da228270b4218f1e90 169.254.18.18:8006
    slots: (0 slots) slave
    replicates 842bc2d2fe084dbae685953806c2b5f30f016e0b
    M: 842bc2d2fe084dbae685953806c2b5f30f016e0b 169.254.18.18:8003
    slots:10923-16383 (5461 slots) master
    1 additional replica(s)
    M: cdba77220c27f07a24e7d93e61441a3219fac88d 169.254.18.18:8002
    slots:5461-10922 (5462 slots) master
    1 additional replica(s)
    S: f2ff252f8820291c9640474943ea7ebdccb08ddb 169.254.18.18:8004
    slots: (0 slots) slave
    replicates d7d92360722c41bd710c9bfa8ebaff46df8230e2
    [OK] All nodes agree about slots configuration.
    >>> Check for open slots...
    >>> Check slots coverage...

    看看这里面

     

     是否跟你配置的集群信息是否相符,是否有没有连接成功的,缺少的话就证明你集群配置有问题了...

     

    如果是集群配置有问题请往下看

     

    解决方案:

    1.把每个节点redis里面的nodes.conf文件全部删除,只要看到这个在你集群文件里,你就rm -rf 干掉就ok了

    2.重新配置集群  例如我们的一个6个redis  这里不过多讲解,请移居度娘

    ./redis-trib.rb create --replicas 1 169.254.18.18:8001 169.254.18.18:8002 169.254.18.18:8003 169.254.18.18:8004 169.254.18.18:8005 169.254.18.18:8006

     

    ps:

    思路就是这样的,还是不ok的话,另行研究咯,祝你早日脱离bug

    哎...今天够累的,签到来了1...
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|小黑屋|Java自学者论坛 ( 声明:本站文章及资料整理自互联网,用于Java自学者交流学习使用,对资料版权不负任何法律责任,若有侵权请及时联系客服屏蔽删除 )

    GMT+8, 2025-1-23 00:55 , Processed in 0.062049 second(s), 27 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表