springboot 单测加入参数_小窥微服务架构Spring Boot的监控与管理

学过马克思主义哲学的码友们都知道:事物具有两面性。那么微服务架构带给我们开发便利的同时,也会带来许多复杂的工作,比如对于运维人员来说,随着应用的不断增多,系统集群中出现故障的频率也会越来越高,虽然在高可用机制的保护下,个别故障不会影响系统的对外服务,但是这些频繁出现的故障需要被及时发现和处理才能保证系统处于健康可用的状态。为了能对这些成倍增长的应用做到高效运维,需要实现一套自动化的监控运维机制,而这套机制的运行基础就是要不断的收集各个微服务应用的各项指标情况,并根据这些基础指标信息来制定监控和预警规则。例如最近新冠肺炎的疫情监控,就是能直观的掌握疫情,并指定相应的方案来应对。

5a2da6319fec02fdbb465049a0729456.png

而我们使用Spring Boot来作为微服务框架时,除了它强大的快速开发功能之外,它还提供了一个特殊的依赖模块spring-boot-starter-actuator,这个模块能够自动为Spring Boot构建的应用提供一系列用于监控的端点,这些基础的监控,可以大大的减少监控系统在采集应用指标的开发量。

99b5f493b57c91819ffe72e6a72ab9bc.png

废话不多说,先来写一个Spring Boot的小demo,在pom.xml中加入spring-boot-starter-actuator模块的依赖,然后写一个简单的hello world:

40876dc7b4e8f79302a8af680ab4cc11.png
75151918d0f6a621f39c122a3d0888a5.png

启动应用,会在日志中,看到这些监控的URL的映射:

3e939717ba7a57f9d4146d2fc6b169b4.png

我们来访问http://localhost:8086/health来看一下返回的信息:

407bddffe72f0bcccab3e802795a504f.png

这些指标是模块spring-boot-starter-actuator中自带的,这个模块已经实现了一些原生端点,从作用上来讲,原生端点可以分为三大类:

1、应用配置类:获取应用程序中加载的应用配置、环境变量、自动化配置报告等与Spring Boot应用密切相关的配置类信息。

2、度量指标类:应用程序在运行过程中,用于监控的度量指标,比如内存信息、线程池信息和HTTP请求统计等

3、控制操作类:提供了操作应用的功能,例如对应用的关闭

首先来说一说应用配置类,由于Spring Boot是约定大于配置,也就是Spring Boot为了改善传统Spring应用繁杂的配置内容,采用了包扫描和自动化配置的机制来加载原本集中与XML文件中的各项内容。也就是我们不需要在配置这些繁重但重复的配置工作,Spring Boot已经有了默认的配置,要想掌握和清楚这些配置,就需要借助于端点的应用配置类,这类端点可以帮助我们轻松获取一系列关于Spring应用配置内容的详细报告,比如自动化配置的报告、环境属性的报告等。

----/autoconfig:获取应用的自动化配置报告,该端点可以帮助我们方便的找到一些自动化配置为什么没有生效:

f3d34183f2c825fe5dfcb2e72ae81c28.png

其中positiveMatches返回的是条件匹配成功的自动化配置,negativeMatches返回的条件匹配不成功的自动化配置。

----/beans:获取应用上下文中创建的所有Bean

a859f235d7447ece97a077c3277313bf.png

----/configprops:用来获取应用中配置的属性信息报告

bdc7dc950bba85e7b94becde38f0c660.png

----/env:用来获取应用所有可用的环境属性报告,包括环境变量、JVM属性、应用的配置属性、命令行中的参数。

3c4c725d34d9662803d3666a2b68c6e5.png

----/mappings:返回所有Spring MVC的控制器映射关系报告。

72735209434b8e17003335aed4d5c32e.png

----/info:返回一些应用自定义的信息。

6c77674355670927e2beb046200f09c6.png

当我们在应用中的application.properties中自定义一些配置,再次访问就会显示有信息:

f83ba7465dcabcdb822fb6bdc93c53bd.png
609fa08a7390a8d6b99c817f4b1a7352.png

然后说一下这个度量指标类,度量指标类端点提供的报告内容是动态变化的,这些端点提供了应用程序在运行过程中的一些快照信息,这些端点对于我们构建微服务架构中的监控系统非常有帮助。

----/metrics:该端点返回当前应用的各类重要度量指标,比如内存信息、线程信息、垃圾回收信息等。

077ff4acf1f3d9c78cb31a686de708d4.png

----/health:用来获取应用的各类健康指标信息。可以根据需求来实现私人定制的采集健康信息的检测器。

----/dump:用来暴露程序运行过程中的线程信息。

e90be29b0e85629860d078bd2d609770.png

----/trace:返回基本的HTTP跟踪信息。

52cec0ca682e9f90cd2eb0efbc395ee3.png

最后说一下操作控制类,对于控制端点,我们来演示一下用来关闭应用的端点:/shutdown,开启该端点需要在应用的配置文件中开启:

3e086aab4edd4395bafc4e62853c15d3.png

由于/shutdown的请求是post请求,我们就用postman来测试:

178becc52291e363ca5379ad060094bc.png
d2d474b7df300bf198ef95d52b6ac444.png

应用就这样通过控制类的端点,被我们关闭了。以上都是我们引入依赖模块后,原生的一些端点应用,在我们进行Spring Boot结合Spring Cloud开发时,会加入更多的端点和监控指标,今天就小窥一下Spring Boot的监控与管理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值