jedis returnResource(jedis)问题
来源:互联网 发布:skype6 下载 mac 编辑:程序博客网 时间:2024/05/22 05:28
一坑未平,一坑又起,今天遇见了新的问题:jedisPool 的问题
问题描述:分布式服务采用redis作为分布式锁实现,由于系统用java,所以就是用了jedis来实现redis链接对象,其中采用了jedispool作为连接池管理链接,
上线之后,前20分钟通过监控观察一切正常,通过内存所管理界面也可以正常观察锁的信息,但当上游系统开始高并发大批量进行服务调用之后,redis开始出现异常,
大致为: classCastException:[B cann't cast long ........................ timeout等信息,,服务不得不回滚。
通过对问题代码分析,可能是由于多线程在从redispool 里获取jedis资源的时候,由于获取的链接可能发生了异常,导致这个链接在returnResource时,没有被正确的回收,导致资源被耗尽,出现timeout的问题,同时,由于出现问题的链接,回收时,资源没有别初始化完全,导致在多线程的情况下,在同一个链接中(jedis对象)发生了数据共享的问题,这也就导致了出现类转换异常这样的错误。
解决办法: 通过对returnResoure代码的分析发现,还有一个方法是专门处理这种链接情况的returnBrokeResoure,这两个方法要同时对jedis实例进行捕获异常情况与回收资源,当然也可以使用 close 来回收jedis资源。
阅读全文
0 0
- jedis returnResource(jedis)问题
- Jedis returnResource使用注意事项
- Jedis returnResource使用注意事项
- Jedis returnResource使用注意事项
- 异常最诡异第二期之 Jedis pool.returnResource(jedis)
- JEDIS
- Jedis
- jedis
- Jedis
- jedis
- Jedis
- Jedis
- Jedis
- Jedis
- Jedis
- jedis
- jedis
- Jedis
- 【NOIP模拟】 (10.26) T2 做运动
- Anaconda3下XGBoost的安装与配置
- hashmap出现重复key的情况
- 在Mac上Git的使用(四)
- SpringMVC注解大全@Controller、@RequestMapping、@Resource和@Autowired等等
- jedis returnResource(jedis)问题
- 酷炫的RecyclerView开源库整理(未测)
- hdu 3248
- 2-1 Point类的定义
- codevs 1704 [NOI2001] 食物链 并查集
- 2017/10/25模拟赛总结
- 12-24小时制
- Libevnt 在Windows10 VS2015下分别编译32位和64位库
- java泛型小结