开发者学堂课程干货总结——Spring Boot 2.5.x开发实战(九)

简介: Spring Boot 2.5.x开发实战课时9——Spring Boot2.5实战 – 应用程序性能监控(Admin&Actuator),Spring Boot 2.5.x开发实战是学习Java Spring Cloud微服务架构的必经之路。电子书+视频为同学带来最佳学习效果,文字、课程链接、图谱地址统统为大家放送了哦

哈喽各位同学们大家好呀,小编继续大家为分享开发者学院中课程Spring Boot2.5实战 – 应用程序性能监控(Admin&Actuator)”干货总结哦~Spring Boot 2.5.x开发实战可Java中级工程师必备课程!

课程链接以及图谱地址小编已经为大家指路了,搭配学习效果更佳👇

课程名称:Spring Boot 2.5.x开发实战

课程地址:https://developer.aliyun.com/learning/course/71

图谱名称:Alibaba Java 技术图谱

图谱地址:https://developer.aliyun.com/graph/java


Spring Boot2.5实战 – 应用程序性能监控(Admin&Actuator)


欢迎收看spring boat实战开发系列课程,这节课也讲另外一个非常重要的主题叫应用程序的性能监控。在生产环境下,应用程序的性能监控是非常重要的,开发阶段可能还不严重,但是生态环境下的话有可能基于高并发,比如双11带来的这些流量冲击问题,可能应用程序在生产环境下,会因为一些配置参数等网络问题,导致应用程序性能可能出现这个问题,比如在高并发等会导致大量的内存耗尽等问题,或者应用程序代码本身在前期开发设计阶段做得不够详细,会出现缓慢的内存泄漏,都需要去做应用程序的性能监控,保证应用程序的强壮性以及我们后期的维护等 

 

 

一、Spring Boot实战  应用程序性能监控APM 

  1. Spring Boot 2.0监控指标 

基于Spring Boot应用程序,我们如何做应用程序的性能监控。对于微服务架构的市场开发课程,也是很重要的一个铺垫,大家需要实战操作去理解我们整个课程内容,括我们会讲非常重要的里面提供了一个组件,executed还有社区里面一个重要的开发项目,Spring Boot2.5,来帮我们去提供可视化的一套接口,Spring Boot本身也提供这种对应的一些接口,你可以去抓取这些原始的数据,我们在后续使用Spring Boot进行开发的话,这些信息也都可以抓得到,只不过我们需要大家去了解,结合自己的整个监控需求,进行配置相应的接口image.png 

 

  1. Spring Boot性能监控Actuator 

1. Spring Boot 20144月性能监控和管理组件Actuator  

2. 使用HTTP EndpointJMX,运行状态指标数据收集 

3. health, metrics, info, dump, env, etc 

4. 2.0以后改进监控地址带有/actuator前缀 

5. 例如/actuator/health监控健康状态信息 

6. 禁用management.endpoint.shutdown.enabled=true 

7. 单个禁用 

8. management.endpoints.enabled-by-default=false 

9. management.endpoint.info.enabled=true 

Actuator主要是来帮助你去进行应用程序的一些监控参数的收集,并且进行扩展暴露给第三方程序的。地质列表里面实际针对的各种不同的一个数据的暴露的信息,这里面比较重要的应用程序性能监控的这些数据都属于敏感数据,不能轻易的暴露给第三方外界。当然还有另外一个问题就是这是一把双刃剑,它本身的性能监控指标的数据收集的话,一定也会消耗一定的服务器资源,比如我们讲的是 CPU或者我们说内存这里面还会通过网络暴露的话会消耗一定的网络带宽资源,它提供了各种不同的这种监控指标信息的话,际都属于我们说叫Endpoint的系列都给你提供了一个暴露的端点或者叫终结点。 

  1. Spring Boot 2.4实战 –内置性能监控 

Endpointimage.png 

通过网络给你提供了一个数据暴露的接口,现在就可以用第三方的一些展示数据或自己来开发,开发一个web界面来去展示 

 

  1. webimage.png对接可以抓取原始的单位信息,可以通过HTTP协议或者我们JMX来暴露可以对接prometheus原生环境下比较重要的一个心理监控的一套解决方案 

例子2.0以后启动了一个我们说的这样一个应用程序这个地址上下面有很多子目录对应的这些不同信息的地址,然后你可以去抓取他然后进行展示,是非常重要的。 

 

2.2.0默认监控EndPoint 

image.png 

后面看如何和实际项目进行结合,讲了很多理论知识概念,也是希望告诉大家这里面对于我们的后续大家开发使用Spring Boot应用程序,包括recipe项目前后端分离的架构的项目,包括我们说微服务架构项目集群都是非常重要的一个方式,而且我们整个微架构进行监控的话,也是在这个基础上进行升级改造image.png 

你如果要做应用程序的性能监控,这是敏感数据你要加入终结点的一个暴露信息的一个形式,这个*的话代表所有种类,如果说我只暴露健康的,我只暴露内存或者thread的或者bean的,你只指定一个用逗号分割,有多个用逗号分割。 

 

Micrometer  

1. Micrometer是多维度指标收集器,语言中立的API 

2. 通过类路径和配置,可以支持多系统导出数据,集成框架 

3. Spring Boot 2 Actuator中包含的指标收集工具 

4. Spring Boot 1.5,1.4和1.3支持,额外依赖项。  

5. Micrometer为Spring Boot 1中counters和gauges增强功能。  

6. 例如, Micrometer Timer能够生成吞吐量,总时间,最近样本的最大延迟,预先计算的百分位数,百分位柱状图相关的时间序列和SLA边界计数。 

7. 支持更多的监控工具如Prometheus, Datadog, Wavefront, SignalFx, Influx, etc  

8. Spring Boot 2强化特性 

Micromeat叫微型指标收集器它是帮你收集并发吞吐量相关的那些信息qpsWps每秒的读取数量每秒的写入数量这些数据都可以收集起来以后做曲线图Micromeat的话叫基准测量。 

Count是个计数器,这个接口累计被调用次数,还有我们说高阶的话,有可能统计的我们说是不一样的,里面我们说的是针对不同的数据类型,它不同的统一指标它的数量是不一样,比如我们统计的可能是过去一秒钟它的并发每秒钟的并发的分值,这都不一样。 

 

Spring Boot 2.0增强Micrometer 

1. JVM各种参数使用率  

2. 各种内存和缓冲池  

3. 与垃圾收集有关的统计  

4. 线程利用率  

5. 加载/卸载的类的数量  

6. CPU使用率  

7. Spring MVC和WebFlux请求延迟时间  

8. RestTemplate延迟时间  

9. 缓存使用率  

10.数据源使用率,包括HikariCP池指标参数  

11.RabbitMQ连接工厂参数  

12.文件描述符使用率使  

13.Logback:记录每个级别记录到Logback的事件数量  

14.正常运行时间:报告正常运行时间表和表示应用程序绝对启动时间的固定计量表  

15.Tomcat使用情况 

 

 

Micrometer采集数据图形 

image.png 

 

 

Micrometer 支持的监控系统 

1. Netflix Atlas  

2. CloudWatch  

3. Datadog  

4. Ganglia  

5. Graphite  

6. InfluxDB  

7. JMX  

8. New Relic  

9. Prometheus  

10. SignalFx  

11. StatsD (Etsy, dogstatsd, Telegraf, and proprietary formats)  

12. Wavefront  

13. AppOptics  

14. Azure Application Insights  

15. Dynatrace  

16. Elasticsearch  

17. StackDriver 

三、Java Spring Boot 2.5监控实战 

1. 开发监控服务端Spring Boot Admin Server 

image.png 

Spring boot名的一个server收入端一定要有,而且要启用一个很重要的注解 

注解image.png 

这里面模拟了一个被监控的思维,模特成语主要里面最主要的就是它配置文件里面一定要暴露监控的数据,如果暴露两种的话,在这里面直接来配置就可以了,否则是暴露所有 

另外的话就是说这里面作为作为被监控方作为客户端程序的话,你这里面要配置一下监控中心admin的例子。image.png 

Admin一个spring的客户端的依赖要加进来客户端程序就具备了数据采集加数据上传的功能 

image.png 

 

Spring Boot Admin监控中心 

image.png 

 

Spring Boot Amin监控中心 

image.png 

相关文章
|
21天前
|
Java API 数据库
Spring Boot框架因其简洁的配置、快速的启动特性及丰富的功能集而备受开发者青睐
本文通过在线图书管理系统案例,详细介绍如何使用Spring Boot构建RESTful API。从项目基础环境搭建、实体类与数据访问层定义,到业务逻辑实现和控制器编写,逐步展示了Spring Boot的简洁配置和强大功能。最后,通过Postman测试API,并介绍了如何添加安全性和异常处理,确保API的稳定性和安全性。
31 0
|
15天前
|
前端开发 Java 数据库连接
Spring 框架:Java 开发者的春天
Spring 框架是一个功能强大的开源框架,主要用于简化 Java 企业级应用的开发,由被称为“Spring 之父”的 Rod Johnson 于 2002 年提出并创立,并由Pivotal团队维护。
37 1
Spring 框架:Java 开发者的春天
|
15天前
|
Java 数据库连接 开发者
Spring 框架:Java 开发者的春天
【10月更文挑战第27天】Spring 框架由 Rod Johnson 在 2002 年创建,旨在解决 Java 企业级开发中的复杂性问题。它通过控制反转(IOC)和面向切面的编程(AOP)等核心机制,提供了轻量级的容器和丰富的功能,支持 Web 开发、数据访问等领域,显著提高了开发效率和应用的可维护性。Spring 拥有强大的社区支持和丰富的生态系统,是 Java 开发不可或缺的工具。
|
16天前
|
自然语言处理 Java API
Spring Boot 接入大模型实战:通义千问赋能智能应用快速构建
【10月更文挑战第23天】在人工智能(AI)技术飞速发展的今天,大模型如通义千问(阿里云推出的生成式对话引擎)等已成为推动智能应用创新的重要力量。然而,对于许多开发者而言,如何高效、便捷地接入这些大模型并构建出功能丰富的智能应用仍是一个挑战。
69 6
|
2月前
|
缓存 NoSQL Java
Springboot实战——黑马点评之秒杀优化
【9月更文挑战第27天】在黑马点评项目中,秒杀功能的优化对提升系统性能和用户体验至关重要。本文提出了多项Spring Boot项目的秒杀优化策略,包括数据库优化(如索引和分库分表)、缓存优化(如Redis缓存和缓存预热)、并发控制(如乐观锁、悲观锁和分布式锁)以及异步处理(如消息队列和异步任务执行)。这些策略能有效提高秒杀功能的性能和稳定性,为用户提供更佳体验。
132 6
|
3月前
|
JSON Java API
解码Spring Boot与JSON的完美融合:提升你的Web开发效率,实战技巧大公开!
【8月更文挑战第29天】Spring Boot作为Java开发的轻量级框架,通过`jackson`库提供了强大的JSON处理功能,简化了Web服务和数据交互的实现。本文通过代码示例介绍如何在Spring Boot中进行JSON序列化和反序列化操作,并展示了处理复杂JSON数据及创建RESTful API的方法,帮助开发者提高效率和应用性能。
133 0
|
3月前
|
Java API 开发者
【开发者福音】Spring Boot 异常处理:优雅应对错误,提升应用健壮性,让调试不再是噩梦!
【8月更文挑战第29天】本文通过对比传统错误处理方式与Spring Boot推荐的最佳实践,展示了如何在Spring Boot应用中实现统一且优雅的异常处理。传统方法需在每个可能出错的地方显式处理异常,导致代码冗余且不一致。而Spring Boot的全局异常处理机制则能集中处理所有异常,简化代码并确保错误响应格式统一,提高应用程序的健壮性和可维护性。文中提供了具体的示例代码以帮助读者更好地理解和应用这一机制。
94 0
|
3月前
|
SQL Java 数据库连接
Spring Boot联手MyBatis,打造开发利器:从入门到精通,实战教程带你飞越编程高峰!
【8月更文挑战第29天】Spring Boot与MyBatis分别是Java快速开发和持久层框架的优秀代表。本文通过整合Spring Boot与MyBatis,展示了如何在项目中添加相关依赖、配置数据源及MyBatis,并通过实战示例介绍了实体类、Mapper接口及Controller的创建过程。通过本文,你将学会如何利用这两款工具提高开发效率,实现数据的增删查改等复杂操作,为实际项目开发提供有力支持。
147 0
|
3月前
|
Java 开发者 Spring
Spring Boot实战宝典:揭秘定时任务的幕后英雄,让业务处理如流水般顺畅,轻松驾驭时间管理艺术!
【8月更文挑战第29天】在现代应用开发中,定时任务如数据备份、报告生成等至关重要。Spring Boot作为流行的Java框架,凭借其强大的集成能力和简洁的配置方式,为开发者提供了高效的定时任务解决方案。本文详细介绍了如何在Spring Boot项目中启用定时任务支持、编写定时任务方法,并通过实战案例展示了其在业务场景中的应用,同时提供了注意事项以确保任务的正确执行。
46 0
|
3月前
|
监控 安全 Java
【开发者必备】Spring Boot中自定义注解与处理器的神奇魔力:一键解锁代码新高度!
【8月更文挑战第29天】本文介绍如何在Spring Boot中利用自定义注解与处理器增强应用功能。通过定义如`@CustomProcessor`注解并结合`BeanPostProcessor`实现特定逻辑处理,如业务逻辑封装、配置管理及元数据分析等,从而提升代码整洁度与可维护性。文章详细展示了从注解定义、处理器编写到实际应用的具体步骤,并提供了实战案例,帮助开发者更好地理解和运用这一强大特性,以实现代码的高效组织与优化。
150 0