本文概述
Spring启动器
Spring Boot Actuator是Spring Boot Framework的子项目。它包括许多其他功能, 可帮助我们监视和管理Spring Boot应用程序。它包含执行器端点(资源所在的位置)。我们可以使用HTTP和JMX端点来管理和监视Spring Boot应用程序。如果要在应用程序中获得生产就绪的功能, 则应使用Spring Boot执行器。
Spring启动执行器功能
Spring Boot执行器具有三个主要功能:
- 终点
- 指标
- 审计
端点:执行器端点使我们可以监视应用程序并与之交互。 Spring Boot提供了许多内置端点。我们也可以创建自己的端点。我们可以分别启用和禁用每个端点。大多数应用程序选择HTTP, 其中端点的ID与/ actuator的前缀一起映射到URL。
例如, / health端点提供应用程序的基本健康信息。执行器默认情况下将其映射到/ actuator / health。
度量:Spring Boot Actuator通过与千分尺集成来提供尺寸度量。千分尺已集成到Spring Boot中。它是工具库, 用于支持从Spring交付应用程序指标。它使用维度数据模型为计时器, 仪表, 计数器, 分布汇总和长任务计时器提供与供应商无关的接口。
审计:Spring Boot提供了一个灵活的审计框架, 该框架将事件发布到AuditEventRepository。如果正在执行spring-security, 它将自动发布身份验证事件。
启用Spring启动执行器
我们可以通过将依赖项spring-boot-starter-actuator注入pom.xml文件来启用执行器。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
<version>2.2.2.RELEASE</version>
</dependency>
Spring启动执行器端点
执行器端点使我们可以监视Spring Boot应用程序并与之交互。 Spring Boot包含许多内置端点, 我们还可以在Spring Boot应用程序中添加自定义端点。
下表描述了广泛使用的端点。
Id | Usage | Default |
---|---|---|
actuator | 它为其他端点提供了基于超媒体的发现页面。它要求Spring HATEOAS位于类路径上。 | True |
auditevents | 它公开了当前应用程序的审核事件信息。 | True |
autoconfig | 它用于显示自动配置报告, 该报告显示所有自动配置候选者以及”应用”或”不”应用它们的原因。 | True |
beans | 它用于显示应用程序中所有Spring Bean的完整列表。 | True |
configprops | 它用于显示所有@ConfigurationProperties的整理列表。 | True |
dump | 它用于执行线程转储。 | True |
env | 它用于从Spring的ConfigurableEnvironment中公开属性。 | True |
flyway | 它用于显示已应用的所有Flyway数据库迁移。 | True |
health | 它用于显示应用程序运行状况信息。 | False |
info | 用于显示任意应用程序信息。 | False |
loggers | 它用于显示和修改应用程序中记录器的配置。 | True |
liquibase | 它用于显示已应用的所有Liquibase数据库迁移。 | True |
metrics | 它用于显示当前应用程序的度量标准信息。 | True |
mappings | 它用于显示所有@RequestMapping路径的整理列表。 | True |
shutdown | 它用于允许正常关闭应用程序。 | True |
trace | 用于显示跟踪信息。 | True |
对于Spring MVC, 使用以下附加端点。
Id | Description | Default |
---|---|---|
docs | 它用于显示文档, 包括对执行器端点的示例请求和响应。 | False |
heapdump | 它用于返回GZip压缩的hprof堆转储文件。 | True |
jolokia | 它用于通过HTTP公开JMX bean(当Jolokia在类路径上时)。 | True |
logfile | 它用于返回日志文件的内容。 | True |
prometheus | 它用于以Prometheus服务器可以抓取的格式公开指标。它需要依赖千分尺-普罗米修斯。 | True |
Spring启动执行器属性
Spring Boot为所有执行器端点提供安全性。它使用基于表单的身份验证, 该身份提供用户ID(作为用户)和随机生成的密码。我们还可以通过为端点定制基本身份验证安全性来访问执行器受限的端点。我们需要通过management.security.roles属性覆盖此配置。例如:
management.security.enabled=true
management.security.roles=ADMIN
security.basic.enabled=true
security.user.name=admin
security.user.passowrd=admin
Spring启动执行器示例
让我们通过示例了解执行器的概念。
步骤1:打开Spring Initializr https://start.spring.io/并创建一个Maven项目。
步骤2:提供群组名称。我们提供了com.srcmini。
第3步:提供工件ID。我们提供了spring-boot-actuator-example例子。
步骤4:添加以下依赖项:Spring Web, Spring Boot Starter启动器和Spring Data Rest HAL浏览器。
步骤5:点击Generate(生成)按钮。当我们单击Generate按钮时, 它将与项目相关的所有规范包装到Jar文件中, 并将其下载到我们的本地系统。
步骤6:提取Jar文件并将其粘贴到STS工作区中。
步骤7:导入项目文件夹。
文件->导入->现有Maven项目->浏览->选择文件夹spring-boot-actuator-example->完成
导入需要一些时间。导入项目后, 我们可以在”包资源管理器”部分中看到项目目录。
步骤8:创建一个Controller类。我们创建了名称为DemoRestController的控制器类。
DemoRestController.java
package com.srcmini;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class DemoRestController
{
@GetMapping("/hello")
public String hello()
{
return "Hello User!";
}
}
步骤9:打开application.properties文件, 并通过添加以下语句禁用执行器的安全性功能。
application.properties
management.security.enabled=false
步骤10:运行SpringBootActuatorExampleApplication.java文件。
步骤11:打开浏览器并调用URL http:// localhost:8080 / actuator。它返回以下页面:
{"_links":{"self":{"href":"http://localhost:8080/actuator", "templated":false}, "health":{"href":"http://localhost:8080/actuator/health", "templated":false}, "health-path":{"href":"http://localhost:8080/actuator/health/{*path}", "templated":true}, "info":{"href":"http://localhost:8080/actuator/info", "templated":false}}}
默认情况下, 该应用程序在端口8080上运行。执行器启动后, 我们可以看到通过HTTP公开的所有端点的列表。
让我们通过调用URL http:// localhost:8080 / actuator / health来调用运行状况端点。表示状态为UP。这意味着该应用程序运行状况良好且正在运行, 不会中断。
同样, 我们可以调用其他端点来帮助我们监视和管理Spring Boot应用程序。
下载专案
评论前必须登录!
注册