简单进行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归属模块单元的统计分析方法的更多相关文章

  1. SpringBoot+Mybatis多模块(module)项目搭建教程

    一.前言 最近公司项目准备开始重构,框架选定为SpringBoot+Mybatis,本篇主要记录了在IDEA中搭建SpringBoot多模块项目的过程. 1.开发工具及系统环境 IDE:Intelli ...

  2. SpringBoot+Mybatis多模块项目搭建教程

    一.前言 框架为SpringBoot+Mybatis,本篇主要记录了在IDEA中搭建SpringBoot多模块项目的过程. 1.开发工具及系统环境 IDE:IntelliJ IDEA 2018.2 系 ...

  3. Spring-Boot构建多模块项目

    Spring-Boot构建多模块项目 功能模块单独项目开发,可以将一个庞大的项目分解成多个小项目,便于细分开发 Maven多模块项目不能独立存在,必须有一个介质来包含. 1.创建一个Maven 项目, ...

  4. SpringBoot集成actuator模块的基本使用

    © 版权声明:本文为博主原创文章,转载请注明出处 1. 版本 SpringBoot:2.0.0.RELEASE 2. 集成 SpringBoot集成actuator模块非常简单,只需要引入actuat ...

  5. 利用springboot创建多模块项目

    本文旨在用最通俗的语言讲述最枯燥的基本知识 最近要对一个不大不小的项目进行重构,用spring觉得太过于繁琐,用cloud又有觉得过于庞大,维护的人手不够:权衡之下,最终选了springboot作为架 ...

  6. SpringBoot学习------SpringBoot使用Thymleaf模块访问不了静态页面

    SpringBoot使用Thymleaf模块访问不了静态页面 最近学习SpringBoot的过程中使用了Thymeleaf模块引擎,页面发送请求后老是无法显示静态页面,所有的步骤都是参考资料来执行,自 ...

  7. 如何分析SpringBoot源码模块及结构?--SpringBoot源码(二)

    注:该源码分析对应SpringBoot版本为2.1.0.RELEASE 1 前言 本篇接 如何搭建自己的SpringBoot源码调试环境?--SpringBoot源码(一). 前面搭建好了自己本地的S ...

  8. SpringBoot+Maven 多模块项目的构建、运行、打包

    SpringBoot+Maven 多模块项目的构建.运行.打包 https://blog.csdn.net/zekeTao/article/details/79413919

  9. BitAdminCore框架应用篇:(二)创建一个简单的增删改查模块

    NET Core应用框架之BitAdminCore框架应用篇系列 框架演示:http://bit.bitdao.cn 框架源码:https://github.com/chenyinxin/cookie ...

  10. SpringBoot创建多模块方式以及打包方式

    springboot重构多模块的步骤 模型层:model 持久层:persistence 表示层:web 步骤: 正常创建一个springboot项目 修改创建项目的pom文件,将jar修改为pom ...

随机推荐

  1. GaussDB(DWS):非侵入式备份及其在NBU上的应用

    摘要:Netbackup软件必须要有该集群所支持的OS的安装包,一种新的非侵入式备份架构呼之欲出. 1. 通用的备份方案介绍 除Netbackup深度定制的厂商外,通常数据库厂商都按XBSA接口来实现 ...

  2. 基于Redis + Lua脚本的设计红包雨

    摘要:红包雨是一个典型的高并发场景,短时间内有海量请求访问服务端,为了让系统运行顺畅,抢红包采用了基于 Redis + Lua 脚本的设计方案. 本文分享自华为云社区<红包雨中:Redis 和 ...

  3. 从1天到10分钟的超越,华为云DRS在背后做了这些

    摘要:华为云DRS助力一汽-大众BI平台实时查看报表,提升数字化决策能力. 本文分享自华为云社区<分钟级查看报表,华为云&一汽-大众,让商机时刻被洞见>,作者:GaussDB 数据 ...

  4. 升级win11显示:此版本的windows不支持该处理器—如何强升win11?

    今天的我微信笔记本 msi gp62 mvr 无论是win10升级到win11 还是安装win11都无法安装.显示: Windows 11不支持该处理器 win11系统升级标准要求相比win10来说有 ...

  5. 9月活动回顾(免费领取PPT)|火山引擎DataLeap、ByteHouse多位专家带来DataOps、实时计算等前沿技术分享!

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群   在上月举行的火山引擎开发者社区 Meetup 第12期暨超话数据专场<数智化转型背景下的火山引擎大数据技 ...

  6. 基于rest_framework的ModelViewSet类编写登录视图和认证视图

    背景:看了博主一抹浅笑的rest_framework认证模板,发现登录视图函数是基于APIView类封装. 优化:使用ModelViewSet类通过重写create方法编写登录函数. 环境:既然接触到 ...

  7. Tomcat--启动慢

    本篇为转载文章 来自:https://www.cnblogs.com/user-sunli/articles/13917035.html 有时启动Tomcat,发现启动很慢,需要几分钟,这个问题值得重 ...

  8. WebRTC 的现状和未来:专访 W3C WebRTC Chair Bernard Aboba

    WebRTC 无疑推动和改变了互联网视频,而这仅仅是刚刚开始,除了大家熟悉的 WebRTC-PC.Simulcast 和 SVC,有太多的新技术和新架构出现在 WebRTC 新的标准中,比如 WebT ...

  9. 汇编 | mov. add. sub指令

    Description 前面我们用到了mov, add. sub指令,它们都带有两个操作对象.到现在,我们知道,mov指令可以有以下几种形式. mov 寄存器,数据 比如: mov ax,8 mov ...

  10. 【驱动】SPI驱动分析(五)-模拟SPI驱动

    简介 模拟SPI驱动是一种软件实现的SPI总线驱动.在没有硬件SPI控制器的系统中,通过软件模拟实现SPI总线的功能.它允许在不修改硬件的情况下,通过GPIO(通用输入/输出)引脚模拟SPI总线的通信 ...