JedisPool链接未释放

最近线上出现一个问题,一个接口一段时间后无响应,查看nginx日志499、502异常。

/zpp/trade/recharftenunt/v1/qury HTTP/1.1" 499 

/zpp/trade/recharftenunt/v1/qury HTTP/1.1" 502

通过查询代码和测试发现原来是jedis创建client连接redis之后资源未释放。

测试环境下,测试问题步骤如下:

1、redis客户端info clients查看当前的连接数

2、调用异常接口。

接口调用时redis的连接数会不断的增加。redis配置的最大连接数是1000.

3、直到redis连接达到604的时候,接口无响应

测试环境下问题已经出现了,于是查看jedis连接池的配置情况。配置如下

<!-- scanner redis properties -->
<bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
   <property name="maxIdle" value="300" />
   <property name="maxTotal" value="600" />
</bean>

maxTotal刚好是600,当jedis连接池中连接数达到599的时候,下一个连接将会一直处于等待连接池分配资源所以造成接口处于阻塞。

4、查看代码,找到问题原因,原来业务逻辑注释掉之后,并没有将jedis的连接也注释掉。

问题总结:jedis在使用过程中一定要记得释放资源

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值