简单进行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. 解读顶会ICDE’21论文:利用DAEMON算法解决多维时序异常检测问题

    摘要:该论文针对多维时序数据的异常检测问题,提出了基于GAN和AutoEncoder的深度神经网络算法,并取得了当前State of the Art (SOTA)的检测效果.论文是云数据库创新LAB在 ...

  2. DataLeap的全链路智能监控报警实践(二):概念介绍

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 概念介绍 基线监控 根据监控规则和任务运行情况,DataLeap的基线监控能够决策是否报警.何时报警.如何报警以及 ...

  3. 火山引擎 DataLeap 下 Notebook 系列文章三:架构升级详解

    更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 当使用 Notebook 的项目日渐增加时,火山引擎 DataLeap 研发团队发现运行中的 PaaS 服务实在太 ...

  4. Java 网络编程 —— 实现非阻塞式的客户端

    创建阻塞的 EchoClient 客户程序一般不需要同时建立与服务器的多个连接,因此用一个线程,按照阻塞模式运行就能满足需求 public class EchoClient { private Soc ...

  5. Python 网络舆情分析系统,舆论可视化界面

    1 简介 舆情管理系统,这不仅仅可以帮助当地的管理人员迅速的排查跟本地有关的负面言论,还可以避免网民因为本身意识不到位而评论或发布一些不好的观点的情况,最终的目的就是帮助社会更好的发展. 2 技术栈 ...

  6. Linux 下 Docker 操作遭到守护程序套接字时访问权限被拒绝

    Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker. ...

  7. JSP开发模式(四种模式)

    原作者为 RioTian@cnblogs, 本作品采用 CC 4.0 BY 进行许可,转载请注明出处. 学习编程开发少不了学习开发模式, JSP在创立至今有 \(4\) 种流行的开发模式: 包括 JS ...

  8. POJ 1236 Network of Schools (连通图 - Garbow 算法)

    POJ 1236 Network of Schools ​ 校园网:给定N所学校和网络,目标是分发软件其他学校都可收到,求①所需最少分发学校数:②若任选学校都能收到,最低新增边数. 思路:同一个强连通 ...

  9. 区间DP练习题题解

    算法讲解:Here AcWing 282. 石子合并 (模板) 题目链接:Here const int N = 310; int a[N], s[N]; int dp[N][N]; void solv ...

  10. JVM 内存大对象监控和优化实践

    作者:vivo 互联网服务器团队 - Liu Zhen.Ye Wenhao 服务器内存问题是影响应用程序性能和稳定性的重要因素之一,需要及时排查和优化.本文介绍了某核心服务内存问题排查与解决过程.首先 ...