又双叒叕崩溃了!!! --- 记一次微服务崩溃

服务又双叒叕崩溃了!!!

 

自从采用了中台架构,每次上线都是提心吊胆的,生怕哪儿又冒出个问题,这不周二上完线,才过了一晚上,就发现内存激增,然后就爆了!!!

如图:

 

Rancher控制台功能还是很强大的,立马上去dump当前出问题服务的内存堆栈

为了找出内存激增的原因,运行一次GC,再dump一个堆栈,对比看是否存在内存泄漏

jcmd 1 GC.run

GC前后的内存堆栈都有了,用两次进行对比,分析:

可以看到char[]是占用内存最多的对象,String、Date对象也不少,,进去看看详情:我们排个序

发现有几个大字符数组,是日志打印的,居然有300多M大小!!!!!!正常日志打印是必要的,但是这个也太过分了爸爸,真的要给跪了,研发同学要打板子了。

按图索骥找到相关接口:

 进去查看实现类,发现代码逻辑搞得特别复杂,没看出丁点面向对象的设计,而且使用了for循环查询数据库,都不用考虑性能的???如果数据量大了怎么搞?

查询参数也不做处理,至少判个空啊!!!完了,全量数据都查出来了,还for,这能不崩吗????

 

同学啊!写代码不是给喵星人当铲屎官,哐次哐次铲一堆就完了。要考虑功能、性能、安全性、可读性、隔离性,要层次分明,逻辑简单啊!你跨服务的时候在调用client接口啊,这本来就是给其他服务使用的,本服务内还调个什么哟,这么复杂的逻辑就是为了一个查询,写个join它不香嘛?商品SKU的缓存做没有?该冗余过来的数据做了冗余没?上点心哪!!!同学

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值