contos新搭建的redis集群,使用客户端可以连接,但使用JedisCluster连接报Could not get a resource from the pool异常

最近搭建redis集群,环境放在阿里云上,系统使用centos6.8。在搭建完成以后,指令可以连接,redis客户端也可以连接,但在java中使用JedisCluster报无法从连接池内获得连接.(Could not get a resource from the pool)。两天内经过网上看到很多解决方案,一直没能解决我当前的问题。最后看到  "kurama2018" 写的文章后,才能得以解决。

解决思路:

           1、查看redis各个节点自动生成的nodes.conf文件,该文件由redis启动后自动生成,且在redis集群后会有redis各节点的详细信息,该文件内容中本该是外网IP的地方变成了内网IP,该原因导致客户端经对key哈希后得到的槽,所对应的请求节点有可能拿到内网ip,导致无法连接。超时后报错。(具体如截图所示)

contos新搭建的redis集群,使用客户端可以连接,但使用JedisCluster连接报Could not get a resource from the pool异常

       2、手动将各节点的内网地址改为相对于的外网地址,然后将各个节点重新启动。启动完成后JedisCluster可正产获取到连接

contos新搭建的redis集群,使用客户端可以连接,但使用JedisCluster连接报Could not get a resource from the pool异常

 

在此做一个笔记,也希望有助于遇到此问题的朋友。

感谢 kurama2018

原文地址:https://www.cnblogs.com/feixuefubing/p/10031449.html