jedis——MaxRedirection(Too many Cluster redirections)

一、错误描述

exceptioName:redis.clients.jedis.exceptions.JedisClusterMaxRedirectionsException: Too many Cluster redirections?
exceptionInfo:redis.clients.jedis.exceptions.JedisClusterMaxRedirectionsExceptio

集群的get请求偶尔会有这种MaxRedirection的异常,有时一天有28次异常。

二、问题排查

2.1 redirect参数问题

没有修改过redirect参数,默认redirect的最大重试是5次,排除redirect参数设置的太小问题。

2.2 慢查询和AOF持久化的影响

需要看下是不是因为redis服务器有慢查询或者AOF异步持久化导致的;

经查看后,确认集群没有开启aof持久化功能,看慢查也没发现明显的耗时命令。

2.3 jedis版本问题

之后怀疑是版本问题,业务查看jedis是否是2.8版本以上,版本应该也不存在问题。

2.4 集群问题

一一排除完上述情况后,业务重启了一下服务,好像没这个报错了。

但是过几天之后,又说还是有这个错误。

之后又排查了一下,找了一些资料,如下:

对该错误处理时,并处理了以下两个异常:

JedisMovedDataException:节点重置/迁移后,会抛出该异常

JedisAskDataException: 数据迁移,发生asking问题, 获取asking的Jedis

再次查看集群的节点状态,发现有一个master之前fail了,集群并没有将其剔除出去,而业务那边配置信息里也没有将这个节点删掉

[work@1 cfq]$ redis-cli -h  xxx -p xxx cluster nodes |grep master
33b9d0b2635228cd2e6502831eeb1e8045328ab9 xxx:xx master - 0 1578901264082 8 connected 4096-8191
d1350973ebba4494fb3ac43c5c7e56a8341612fa xxx:xx master - 0 1578901264279 2 connected 8192-12287
dbcb1de135ff5670e34997dcd496dc90939b1f0b xxx:xx master - 0 1578901266234 4 connected 0-4095
60f6394e8de539b1961f0762d4709698741e2438 xxx:xx myself,master - 0 0 9 connected 12288-16383
ecc6110a5aa0045a86deecb3c6e4ac96bf2ba917 xxx:xx master,fail - 1574452925253 1574452919265 7 connected

将该fail的节点剔除出去之后,再让业务改一下节点地址,应该就好了.

三、小结

一些很复杂的问题,往往都是很简单的原因造成的,还是得学会抓住问题的本质,一针见血。

参考:
https://segmentfault.com/a/1190000016461888

http://www.javacoder.cn/?p=1381

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值