CodisLabs / jodis

A java client for codis based on Jedis and Curator
MIT License
217 stars 97 forks source link

Jodis连接codis报错:Caused by: redis.clients.jedis.exceptions.JedisConnectionException: java.net.UnknownHostException: iZwz977ogd6jecq7rowvtsZ #62

Closed Hudonyo closed 5 years ago

Hudonyo commented 5 years ago

首先,codis集群部署在阿里云,只有一个proxy节点,通过jodis连接时报下面的错: 771 [main] INFO io.codis.jodis.RoundRobinJedisPool - Add new proxy: iZwz977ogd6jecq7rowvtsZ:19000 771 [Curator-PathChildrenCache-0] INFO io.codis.jodis.RoundRobinJedisPool - Receive child event: type=CONNECTION_RECONNECTED, no data 772 [Curator-PathChildrenCache-0] INFO io.codis.jodis.RoundRobinJedisPool - Receive child event: type=CHILD_ADDED, path=/jodis/codis-demo/proxy-420a662ef2b07ede2e7254260a1b4389, stat=7221,7221,1553854955394,1553854955394,0,0,0,72058014097211406,222,0,7221 , bytes length=222 783 [main-SendThread(120.79.200.63:2181)] DEBUG org.apache.zookeeper.ClientCnxn - Reading reply sessionid:0x1000061cd7c0013, packet:: clientPath:/jodis/codis-demo serverPath:/jodis/codis-demo finished:false header:: 8,12 replyHeader:: 8,7231,0 request:: '/jodis/codis-demo,T response:: v{'proxy-420a662ef2b07ede2e7254260a1b4389},s{21,21,1553743793784,1553743793784,0,5,0,0,0,1,7221} 795 [main-SendThread(120.79.200.63:2181)] DEBUG org.apache.zookeeper.ClientCnxn - Reading reply sessionid:0x1000061cd7c0013, packet:: clientPath:/jodis/codis-demo/proxy-420a662ef2b07ede2e7254260a1b4389 serverPath:/jodis/codis-demo/proxy-420a662ef2b07ede2e7254260a1b4389 finished:false header:: 9,4 replyHeader:: 9,7231,0 request:: '/jodis/codis-demo/proxy-420a662ef2b07ede2e7254260a1b4389,T response:: #7ba202020202261646472223a2022695a777a3937376f6764366a65637137726f777674735a3a3139303030222ca202020202261646d696e223a20223132372e302e302e313a3131303830222ca20202020227374617274223a2022323031392d30332d32392031383a32313a31382e353336303531323537202b3038303020435354206d3d2b302e303134303933333132222ca20202020227374617465223a20226f6e6c696e65222ca2020202022746f6b656e223a2022343230613636326566326230376564653265373235343236306131623433383922a7d,s{7221,7221,1553854955394,1553854955394,0,0,0,72058014097211406,222,0,7221} Exception in thread "main" redis.clients.jedis.exceptions.JedisConnectionException: Could not get a resource from the pool at redis.clients.util.Pool.getResource(Pool.java:53) at redis.clients.jedis.JedisPool.getResource(JedisPool.java:226) at io.codis.jodis.RoundRobinJedisPool.getResource(RoundRobinJedisPool.java:218) at com.drhu.JodisTest.main(JodisTest.java:19) Caused by: redis.clients.jedis.exceptions.JedisConnectionException: java.net.UnknownHostException: iZwz977ogd6jecq7rowvtsZ at redis.clients.jedis.Connection.connect(Connection.java:207) at redis.clients.jedis.BinaryClient.connect(BinaryClient.java:93) at redis.clients.jedis.BinaryJedis.connect(BinaryJedis.java:1767) at redis.clients.jedis.JedisFactory.makeObject(JedisFactory.java:106) at org.apache.commons.pool2.impl.GenericObjectPool.create(GenericObjectPool.java:868) at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:435) at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:363) at redis.clients.util.Pool.getResource(Pool.java:49) ... 3 more Caused by: java.net.UnknownHostException: iZwz977ogd6jecq7rowvtsZ at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:178) at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:157) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:391) at java.net.Socket.connect(Socket.java:579) at redis.clients.jedis.Connection.connect(Connection.java:184) ... 10 more

这是客户端代码: public class JodisTest {

private static final String zkAddr = "xxx.79.xxx.63:2181";
private static final int zkSessionTimeoutMs = 30000;
private static final String zkProxyDir = "/jodis/codis-demo";

public static void main(String[] args) {
    BasicConfigurator.configure();
    JedisResourcePool jedisPool = RoundRobinJedisPool.create()
            .curatorClient(zkAddr, zkSessionTimeoutMs).zkProxyDir(zkProxyDir).build();

    try (Jedis jedis = jedisPool.getResource()) {
        jedis.set("foo", "bar");
        String value = jedis.get("foo");
        System.out.println(value);
    }
}

}

zk可以连接上,但是从zk中获取到proxy节点后,报上面错,proxy服务ip端口:0.0.0.0:19000 是不是跟阿里云服务器有关呢?防火墙关了也一样