CodisLabs / jodis

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

jodis做set操作,1w次,每次都出现几次read time out 这是为什么?怎么解决? #18

Closed chinaer closed 7 years ago

chinaer commented 8 years ago

redis.clients.jedis.exceptions.JedisConnectionException: java.net.SocketTimeoutException: Read timed out at redis.clients.util.RedisInputStream.ensureFill(RedisInputStream.java:201) at redis.clients.util.RedisInputStream.readByte(RedisInputStream.java:40) at redis.clients.jedis.Protocol.process(Protocol.java:141) at redis.clients.jedis.Protocol.read(Protocol.java:205) at redis.clients.jedis.Connection.readProtocolWithCheckingBroken(Connection.java:297) at redis.clients.jedis.Connection.getStatusCodeReply(Connection.java:196) at redis.clients.jedis.Jedis.set(Jedis.java:69) at com.nonobank.cache.cachetools.CodisCacheClient.set(CodisCacheClient.java:27) at com.nonobank.cache.cachetools.CodisCacheClient.main(CodisCacheClient.java:48) Caused by: java.net.SocketTimeoutException: Read timed out at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.read(Unknown Source) at java.net.SocketInputStream.read(Unknown Source) at java.net.SocketInputStream.read(Unknown Source) at redis.clients.util.RedisInputStream.ensureFill(RedisInputStream.java:195) ... 8 more

spinlock commented 8 years ago

1w 次是如何操作的。。 是 pipeline 么?

能贴一下测试代码么?

chinaer commented 8 years ago

try (Jedis jedis = jedisPool.getResource()) { return jedis.getSet(key, value); } 就这个for循环次数1w次就会有异常抛出来

spinlock commented 8 years ago

jedis 的 timeout 设置的是多久?

chinaer commented 8 years ago

用的是默认设置

chinaer commented 8 years ago

zkSessionTimeoutMs=30000

spinlock commented 8 years ago

看一下 redis 的日志,以及 proxy 的日志,出错是什么?

还有 redis 是不是开了 aof,写 1w 次以后开始 rewrite 了导致失去响应?或者自动 bgsave,这个似乎默认是开的。