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

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

如图:

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

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

jcmd 1 GC.run

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

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

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

按图索骥找到相关接口:

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

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

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

又双叒叕崩溃了!!! --- 记一次微服务崩溃相关推荐

  1. 毛刺现象 java_记一次微服务耗时毛刺排查

    点击蓝字关注这个神奇的公众号- 前段时间的某天,注意到一个服务的平均耗时出现了如下图的毛刺现象. 注意到毛刺出现极其规律,每30分钟出现一个毛刺.考虑到这种规律性,并结合服务的流量较小(20 QPS) ...

  2. 如何使用 PTS 快速发起微服务压测

    作者:亦炎 什么是微服务 通常而言,微服务架构是一种架构模式或者说是一种架构风格. 本文阐述了: 什么是微服务架构 微服务架构对系统稳定性带来的影响,以及用性能测试验证稳定性的必要性 用户进行微服务压 ...

  3. 01 | 顶层设计:微服务生态与 Spring Cloud Alibaba

    通用的微服务架构应包含哪些组件 相对于单体式架构的简单粗暴,微服务架构将应用打散,形成多个微服务进行独立开发.测试.部署与运维.虽然从管理与逻辑上更符合业务需要,但微服务架构也带来了诸多急需解决的核心 ...

  4. 微服务技术发展的现状与展望

    微服务技术发展的现状与展望 人工智能技术与咨询 来源:计算机研究与发展,作者冯志勇等 摘 要 随着云计算.物联网等技术迅速发展,用户对软件系统的需求趋于多样化,面向服务的体系架构(service or ...

  5. kafka redis vs 发布订阅_Redis、Kafka或RabbitMQ,哪个更和微服务更般配?

    将异步通信用于微服务时,通常使用消息代理.代理确保不同微服务之间的通信可靠且稳定,确保消息在系统内得到管理和监视,并且消息不会丢失.您可以选择一些消息代理,它们的规模和数据功能各不相同.这篇博客文章将 ...

  6. 黑马微服务学习(实用篇)

    1.微服务简述 可以看这个哥们的笔记,比我记的好得多 微服务技术栈 - 乐心湖's Blog | 技术小白的技术博客 消息队列解决里面服务集群之间的异步通信. 系统监控链路追踪,实时监控每个结点的运行 ...

  7. 记微服务架构实战学习笔记

    架构演进和分布式系统基础知识 1.传统架构演进到分布式架构 简介:讲解单机应用和分布式应用架构演进基础知识 (画图) 高可用 LVS+keepalive 1.单体应用:开发速度慢启动时间长依赖庞大等等 ...

  8. 测试一年多,上线就崩溃!微服务到底应该怎么测试?

    简介:只有了解风险,才能及时应对,保障服务高可用. 不久前,也就是11月16日,澳大利亚交易所(Australian Securities Exchange, ASX)上线了一个新的交易系统,但因为出 ...

  9. 记-微服务CPU100%排查之windows版

    简述: Spring Cloud项目其中某个服务运行几个小时后CPU无端端达到100%,但内存无异常. 环境: 1.硬件:AMD-R52500U处理器,Win10电脑 2.应用:共6个微服务,同时在一 ...

最新文章

  1. QA32中的出口 “STATTEXT”
  2. android自定义WaveView水波纹控件
  3. nodejs ejs模版 layout使用 注意点
  4. Python代码发送post请求接口测试--转载
  5. 科大星云诗社动态20210501
  6. JSON.stringify() 格式化 输出log
  7. 缓存-分布式锁-Redisson-lock锁测试
  8. matlab销量预测的数学模型,数学建模:酒店最优化问题.用matlab算出《酒店价格预测模型》...
  9. bond4 交换机配置_Linux--多网卡的7种Bond模式和交换机配置
  10. PIP(Python包管理工具)-Mac环境下安装
  11. ARM开发6.3.3 基础实训( 3 ) 两个 LED 显示二位数(静态显示)--LPC21XX
  12. C语言程序设计的特点
  13. 王之泰 201771010131《面向对象程序设计(java)》第十六周学习总结
  14. i2c 驱动五:gpio模拟i2c
  15. android 本地图片模糊,Android端图片模糊的实现原理及方案
  16. ESP8266入门教程04:连接WIFI热点
  17. 简述Java中封装,继承,多态的理解
  18. cin.tie与sync_with_stdio加速I/O
  19. 【shell】网络处理:判断IP是否在网段、两个ip是否同网段、IP地址范围、网段包含关系
  20. Python笔记_20_魔术方法

热门文章

  1. 浪潮云服务器,重要的不是全球第一,而是开创了一个新品类
  2. 基于Android虹软免费人脸识别 SDK开发
  3. python路径规划仿真实验_ROS探索总结(十四)—— move_base(路径规划)
  4. 成本控制:自建和租用企业邮箱哪个更划算?
  5. 本周 GitHub 速览:您的代码有声儿吗?(Vol.38)
  6. 认识小波——MATLAB中国的讲座(笔记)
  7. 西门子污水处理程序西门子Wincc+S7-300污水处理项目
  8. cc1310 学习调试记录
  9. sas 分析分类数据(1)
  10. linux查看bios版本,怎么查看固件文件中的BIOS版本