spring-boot2.x版本+gradle加载依赖项目替换redis客户端为jedis

本文讲述了在spring-boot2.x项目中,由于集成相机导致的Linux环境下内存溢出问题。经过排查,怀疑是lettuce客户端的netty内存问题,但监控并未超过默认最大内存。最终通过替换redis客户端为jedis解决了问题。替换步骤包括:全局排除lettuce依赖,配置改为jedis,替换相关引用,处理jar包中lettuce的引用,并确保替换成功。
摘要由CSDN通过智能技术生成

背景:

公司开发了一款边缘计算的平台,技术上采用了sping-boot2.x版本+gradle,redis客户端采用了lettuce5.4版本。Linux上边缘计算平台集成相机时,发现缓冲区内存溢出。

调查:

出现了缓冲区内存溢出,在windows本地环境发现同样的流程未复现Linux环境上的问题,debug模式下由于相机的sdk调用复杂,涉及c底层,查看不出原由。

模拟测试:

设计测试方案,一、使用接口单独调用相机sdk未能发现问题。二、在调用相机的sdk基础上,加上流程附近的操作。

测试结果得出,redis与相机sdk一起使用时出现问题。

网上查看类似问题:

1、c底层本身的问题,大概类似数组越界,申请的内存不够之类。

2、redis的客户端lettuce的netty的内存超过默认的最大内存。

验证是否是上述问题:

问题一未能模拟,问题二代码里面加上了对netty内存使用情况的监控,发现未超过默认的最大内存。

问题暂时解决:

网上说可以使用jedis替换调lettuce,于是进行替换,测试发现问题消失。

但是在全项目进行替换发现由于公司采取的技术框架比较与众不同,替换不能采用网上所说的形式。

 

spring-boot2.x版本+gradle加载依赖项目替换redis客户端为jedis方式:

1、排除lettuce依赖:

由于公司的spring-boot是通过spring的插件导入,不能直接在spring导入依赖中添加排除,只能在全局设置排除依赖。

exclude g
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值