简单进行Springboot Beans归属模块单元的统计分析方法
简单进行Springboot Beans归属模块单元的统计分析方法
背景
基于Springboot的产品变的复杂之后
启动速度会越来越慢.
公司同事得出一个结论.
beans 数量过多会导致启动速度逐渐变慢.
之前同事写过功能进行分析.
但是本着能不影响产品就不影响产品.
我想通过其他方式进行处理. 所以写了这个短文
水一编..
产品改动部分
需要增加actuator的配置
# 注意产品这边为了可观测性.已经先期进行了处理.
注意的配置有:
白名单: - /actuator/**
然后管理节点也需要增加处理:
management:
health:
redis:
enabled: true
rabbit:
enabled: true
endpoint:
health:
show-details: always
endpoints:
web:
exposure:
include: "*"
安装部分软件
最新需要安装 jq 进行 json 序列化处理.
yum install jq -y
其他的比如curl 以及 wget 一般发行版都带了
可以直接使用.
获取与分析
# 创建一个存放文件的目录
mkdir -p /deploy/beans
# 拉取beans 原始信息
curl http://127.0.0.1:5200/actuator/beans > /deploy/beans/beans_raws.txt
# json格式化
cat /deploy/beans/beans_raws.txt |jq >/deploy/beans/beans.txt
# 获取所有beans的名字
cat /deploy/beans/beans.txt | grep -E aliases -B 1 |grep -v aliases |grep -Ev '\-\-' |awk -F ":" '{print $1}' > /deploy/beans/beans_name.txt
# 获取所有的type信息按照命名空间进行简单分类
cat /deploy/beans/beans.txt |grep '\"type\"' > /deploy/beans/beans_type.txt
# 获取beans总数
cat /deploy/beans/beans_name.txt |wc -l >/deploy/beans/sum_of_beans.txt
# 按照模块分析beans的数量. 注意需要替换公司的名字. 只分析自己公司的交付物.
cat /deploy/beans/beans_type.txt | grep "com.xxxxxx" |awk -F "." '{print $4}' |sort |uniq -c |sort -k1hr > /deploy/beans/num_of_module.txt
# 获取vo 相关的beans数量信息
cat /deploy/beans/beans_name.txt |grep "\.vo\." | awk -F "." '{print $4}' |sort |uniq -c |sort -k1hr > /deploy/beans/num_of_vo.txt
# 获取vo总数
cat /deploy/beans/beans_name.txt |grep "\.vo\." |sort |wc -l >/deploy/beans/sum_of_vo.txt
简单进行Springboot Beans归属模块单元的统计分析方法的更多相关文章
- SpringBoot+Mybatis多模块(module)项目搭建教程
一.前言 最近公司项目准备开始重构,框架选定为SpringBoot+Mybatis,本篇主要记录了在IDEA中搭建SpringBoot多模块项目的过程. 1.开发工具及系统环境 IDE:Intelli ...
- SpringBoot+Mybatis多模块项目搭建教程
一.前言 框架为SpringBoot+Mybatis,本篇主要记录了在IDEA中搭建SpringBoot多模块项目的过程. 1.开发工具及系统环境 IDE:IntelliJ IDEA 2018.2 系 ...
- Spring-Boot构建多模块项目
Spring-Boot构建多模块项目 功能模块单独项目开发,可以将一个庞大的项目分解成多个小项目,便于细分开发 Maven多模块项目不能独立存在,必须有一个介质来包含. 1.创建一个Maven 项目, ...
- SpringBoot集成actuator模块的基本使用
© 版权声明:本文为博主原创文章,转载请注明出处 1. 版本 SpringBoot:2.0.0.RELEASE 2. 集成 SpringBoot集成actuator模块非常简单,只需要引入actuat ...
- 利用springboot创建多模块项目
本文旨在用最通俗的语言讲述最枯燥的基本知识 最近要对一个不大不小的项目进行重构,用spring觉得太过于繁琐,用cloud又有觉得过于庞大,维护的人手不够:权衡之下,最终选了springboot作为架 ...
- SpringBoot学习------SpringBoot使用Thymleaf模块访问不了静态页面
SpringBoot使用Thymleaf模块访问不了静态页面 最近学习SpringBoot的过程中使用了Thymeleaf模块引擎,页面发送请求后老是无法显示静态页面,所有的步骤都是参考资料来执行,自 ...
- 如何分析SpringBoot源码模块及结构?--SpringBoot源码(二)
注:该源码分析对应SpringBoot版本为2.1.0.RELEASE 1 前言 本篇接 如何搭建自己的SpringBoot源码调试环境?--SpringBoot源码(一). 前面搭建好了自己本地的S ...
- SpringBoot+Maven 多模块项目的构建、运行、打包
SpringBoot+Maven 多模块项目的构建.运行.打包 https://blog.csdn.net/zekeTao/article/details/79413919
- BitAdminCore框架应用篇:(二)创建一个简单的增删改查模块
NET Core应用框架之BitAdminCore框架应用篇系列 框架演示:http://bit.bitdao.cn 框架源码:https://github.com/chenyinxin/cookie ...
- SpringBoot创建多模块方式以及打包方式
springboot重构多模块的步骤 模型层:model 持久层:persistence 表示层:web 步骤: 正常创建一个springboot项目 修改创建项目的pom文件,将jar修改为pom ...
随机推荐
- 华为云应用服务网格最佳实践之从Spring Cloud 到 Istio
摘要:在全球首届社区峰会IstioCon 2021中,华为云应用服务网格首席架构师张超盟发表了<Best practice:from Spring Cloud to Istio>主题演讲, ...
- DTSE Tech Talk | 云原生架构下的数字身份治理实践
摘要:由华为技术大咖VS派拉软件CTO为大家详解云原生架构下的身份管理平台,构建云安全数字身份入口. 本文分享自华为云社区<DTSE Tech Talk | 第4期:云原生架构下的数字身份治理实 ...
- 华为云媒体査勇:华为云在视频AI转码领域的技术实践
摘要:为大家介绍华为云媒体处理服务在视频AI转码领域的一些技术实践. 随着5G的落地和消费终端的不断升级,消费环节对视频画质的要求也越来越高,为了给消费者带来更清晰.更逼真和更具沉浸感的观感体验,对云 ...
- DarkMode(3):sass函数实实现深色模式操作
上文<DarkMode(2):深色模式解决方案--css颜色变量实现Dark Mode>,完全基于样色抽离变量,然后使用预处理其,生成两套样式.切换样式文件. sass自定义函数与mixi ...
- 资源成本降低60%!火山引擎ByteHouse助力数字营销平台仟传网络降本增效
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 近日,中国知名内容社交平台整合营销企业仟传网络与火山引擎ByteHouse达成合作.仟传网络将通过火山引擎By ...
- Mac Snipaste 不仅仅是截图工具,不在菜单栏显示,怎么样修改快捷键
官网下载: https://www.snipaste.com Snipaste 免费,支持 Windows.Mac,Windows 上的功能相当多而且,Mac 也够用了 不仅仅是个截图工具,具有强大功 ...
- HeaderMap Method has too many Body parameters
在 Feign 方法里面添加 Header 报 Method has too many Body parameters @PostMapping(value = "/sendsms" ...
- Python中节省内存的方法之一:__slots__属性
Python是一门动态语言,可以在运行过程中,修改实例的属性和增删方法.任何实例都包含一个字典__dict__,该字典保存了实例所有的属性和方法.Python也通过这个字典可以将任意属性绑定到实例上. ...
- sed 流编辑器
一.简介 非交互式的处理 一行一行的读入处理 占用系统空间少 大文件一般用sed节省内存 语法:语法 sed [选项] '行的定位 动作' 文件... 参数 说明 -e 允许进行多项编辑 -n 静默输 ...
- Codeforce:723A. The New Year: Meeting Friends (水题)
题意:有三个好朋友的家都住在x轴的不同坐标,问新年的时候三个朋友之间问候走的最短距离 max{(a,b,c)} - min{(a,b,c)} 即可 编译器由 VS2017 切换到VScode使用,纪念 ...