河南专业网站建设哪家好,网站怎么黑,群晖wordpress端口映射,两个wordpress共用用户朋友您好#xff0c;在本教程中#xff0c;我们将学习弹簧执行器及其所有功能。 1.什么是弹簧执行器#xff1f; 2.如何在Maven项目或Gradle项目中添加弹簧执行器#xff1f; 3.创建一个具有Spring Actuator依赖项的Spring Boot项目。 4.使用弹簧执行器端点监视应用程序… 朋友您好在本教程中我们将学习弹簧执行器及其所有功能。 1.什么是弹簧执行器 2.如何在Maven项目或Gradle项目中添加弹簧执行器 3.创建一个具有Spring Actuator依赖项的Spring Boot项目。 4.使用弹簧执行器端点监视应用程序。 什么是弹簧执行器 一旦您开发了应用程序并将其部署到生产环境中就必须检查已启动并正在运行的应用程序的运行状况这一点非常重要特别是对于像银行应用程序这样的关键任务应用程序如果需要面向客户的应用程序下降将直接影响银行业务。 以传统的方式在使用Spring Actuator之前我们需要编写代码来检查应用程序的运行状况但是使用Spring Actuator我们不需要编写任何用于运行状况检查的代码但是Spring Actuator提供了一些现成的端点可以对于应用程序的健康检查非常有用。 如何在Maven项目或Gradle项目中添加弹簧执行器 dependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-actuator/artifactId/dependency
/dependencies dependencies {compile(org.springframework.boot:spring-boot-starter-actuator)
}创建一个具有Spring Actuator依赖项的Spring Boot项目 让我们继续并使用Spring Initializer https://start.spring.io/创建一个具有Spring Actuator依赖项与Web和DevTools一起使用的Spring Boot项目。 请注意在撰写本教程时Spring Boot版本为2.1.0。 在Eclipse或您选择的任何其他IDE中导入项目然后运行SpringActuatorApplication.java。 您将在Eclipse控制台中看到以下内容 这表明嵌入式Tomcat已在端口8080上启动而SpringActuatorApplication已在Tomcat上启动。 同样在控制台日志中您可以看到执行器端点通过/ actuator URI公开。 018-11-09 200029.346 INFO 8338 — [restartedMain] osbwembedded.tomcat.TomcatWebServerTomcat在端口上启动8080http具有上下文路径“ 2018-11-09 200029.354 INFO 8338 — [restartedMain] nbjsSpringActuatorApplication在9.273秒内启动了SpringActuatorApplicationJVM运行11.823 2018-11-09 200029.190INFO 8338 — [restartedMain] osbaeweb.EndpointLinksResolver在基本路径“ / actuator”下暴露2个端点。 使用弹簧执行器端点监视应用 如上所述Spring执行器提供了一些现成的端点可用于监视应用程序的运行状况。 ID 描述 审核事件 公开当前应用程序的审核事件信息。 豆子 显示应用程序中所有Spring Bean的完整列表。 快取 公开可用的缓存。 条件 显示在配置和自动配置类上评估的条件以及它们匹配或不匹配的原因。 configprops 显示所有ConfigurationProperties的整理列表。 环保 从Spring的ConfigurableEnvironment中公开属性。 飞路 显示已应用的所有Flyway数据库迁移。 健康 显示应用程序运行状况信息。 httptrace 显示HTTP跟踪信息默认情况下最近100个HTTP请求-响应交换。 信息 显示任意应用程序信息。 整合图 显示Spring Integration图。 记录器 显示和修改应用程序中记录器的配置。 液基 显示已应用的所有Liquibase数据库迁移。 指标 显示当前应用程序的“指标”信息。 映射 显示所有RequestMapping路径的整理列表。 计划任务 显示应用程序中的计划任务。 会议 允许从Spring Session支持的会话存储中检索和删除用户会话。 使用Spring Session对反应式Web应用程序的支持时不可用。 关掉 使应用程序正常关闭。 线程转储 执行线程转储。 启用端点 默认情况下除关机外的所有端点均处于启用状态。 要启用端点请在application.properties文件中使用以下属性。 management.endpoint.id.enabled 例 要启用关闭端点我们需要在application.properties文件中进行以下输入 management.endpoint.shutdown.enabledtrue 或者我们可以禁用所有端点然后有选择地启用所需的端点。 使用以下配置将禁用除info之外的所有端点。 management.endpoints.enabled-by-defaultfalsemanagement.endpoint.info.enabledtrue端点执行器 让我们点击URL http// localhost8080 / actuator并查看端点。 注意 我使用Postman来测试端点因为它以结构良好的格式显示JSON。 您可以自由使用任何其他此类工具也可以仅使用浏览器。 在Spring Actuator中公开端点 正如您已经注意到的在这里只能看到运行状况和信息端点。 这是因为这些是默认情况下唯一公开的端点。 出于安全原因默认情况下不会公开所有端点因为它们可能具有一些敏感信息因此可能会受到威胁。 暴露特定端点 如果要通过WebHttp公开其他端点则需要在application.properties文件中进行以下输入。 management.endpoints.web.exposure.include Comma separated list of Ids of endpoints which we want to expose 例 management.endpoints.web.exposure.include health,info,env 现在在application.properties中添加以上条目之后让我们再次命中URL http// localhost8080 / actuator。 正如我们在下面的屏幕截图中看到的那样env端点也已启用。 公开所有端点 如果要启用所有端点可以在application.properties中使用通配符*如下所示。 management.endpoints.web.exposure.include* 公开所有端点只有少数端点除外 下面的两个条目将启用所有端点但仅禁用环境端点。 management.endpoints.web.exposure.include*management.endpoints.web.exposure.excludeenv 禁用HTTP端点 如果您不想通过HTTP公开端点可以通过在application.properties中配置以下内容来完成 management.server.port-1 或者您可以在application.properties中配置以下内容 management.endpoints.web.exposure.exclude*自定义执行器URL以访问各种端点 默认情况下所有Web终结点在/ actuator下都可用其URL格式为/ actuator / {id}。 但是可以通过在application.properties中配置以下属性来配置基本路径/执行器。 management.endpoints.web.base-path 例如如果要将基本URL设置为/ monitor而不是/ actuator则可以 可以在application.properties中进行如下配置 management.endpoints.web.base-path/monitor 这样可以将所有端点作为/ monitor / {id}而不是/ actuator / {id}进行访问 Spring Boot执行器端点 让我们讨论一些最重要的端点。 /健康 运行状况端点将提供应用程序的状态如果应用程序已启动且未运行。 这对于在生产中监视应用程序的运行状况非常重要。 该端点可以与监视应用程序集成在一起并且在告知应用程序的实时运行状况方面将非常有帮助。 健康资讯 健康终结点将公开多少信息取决于application.properties文件中属性management.endpoint.health.show-details的配置。 如果management.endpoint.health.show-details never则永远不会显示详细信息。 在这种情况下您只会看到以下信息。 这也是默认行为。 如果management.endpoint.health.show-details always则向所有用户显示详细信息。因此如下面的响应所示我们也具有磁盘空间信息。 如果您的应用程序已连接到数据库那么您还将获得有关数据库运行状况的信息。 如果management.endpoint.health.show-details 何时授权 则仅向授权用户显示详细信息。可以使用management.endpoint.health.roles属性配置授权角色。 自动配置的健康指标 Spring Boot Actuator具有许多自动配置的HeathIndicators用于检查应用程序各个部分的运行状况。 例如Spring Boot Actuator提供了DiskspaceHealthIndicator它提供有关应用程序使用的磁盘空间的运行状况的信息。 同样如果您使用的是MongoDB则MongoHealthIndicator将检查Mongo DB的运行状况是否为UP并显示相关信息。 默认情况下最终应用程序状态是由HealthAggregator派生的它基本上根据状态的有序列表对每个HealthIndicator的状态进行排序。 排序列表中的第一个状态用作应用程序的最终状态。 禁用所有自动配置的运行状况指示器 这些运行状况指示器默认情况下处于启用状态但是可以使用以下属性将其禁用 management.health.defaults.enabledfalse禁用各个自动配置的运行状况指示器 或者也可以如下禁用单个HealthIndicator例如禁用磁盘空间的运行状况检查 management.health.diskspace.enabledfalse 注意 任何HealthIndicator的标识符将是不带有HealthIndicator后缀的Bean的名称。 例如 DiskSpaceHealthIndicator diskspace
MongoHealthIndicator mongo
CassandraHealthIndicator cassandra
DataSourceHealthIndicator datasource 等等… 自定义健康指标 连同Spring Boot Actuator提供的内置HealthIndicators我们还可以创建自己的自定义Health Indicator。 为此您需要创建一个实现HealthIndicator接口并实现其health方法的类并通过以下相关信息返回Health作为响应 import org.springframework.boot.actuate.health.Health;
import org.springframework.boot.actuate.health.HealthIndicator;
import org.springframework.stereotype.Component;Component
public class CustomHealthIndicator implements HealthIndicator {Overridepublic Health health() {int errorCode 0; // In the above line,I am simple assigning zero,but you can call Health check related code like below commented line and that method can return the appropriate code.// int errorCode performHealthCheck();if (errorCode ! 0) {return Health.down().withDetail(Error Code, errorCode).build();}return Health.up().build();}} 现在让我们再次达到运行状况终结点看看我们的自定义运行状况指示器是否得到反映。 正如我们在上面的屏幕快照中看到的那样自定义运行状况检查已包括在内。 每个组件的健康状况 还可以检查单个组件的运行状况。 在上面的示例中我们看到了自定义健康状态以及diskSpace健康状态。 如果只想查看diskSpace运行状况则可以执行以下操作 http// localhost8080 / actuator / health / diskSpace /信息 info终结点提供了有关应用程序的一般信息该应用程序是从诸如build-info.properties或git.properties之类的文件中获取的或者是从application.properties中关键信息下的任何属性获取的。 就像在我们的项目中一样没有这样的文件因此如果我们点击info端点它将仅显示空响应如下所示 如果存在META-INF / build-info.properties文件Spring Boot Actuator将显示与构建相关的信息。 build-info目标使用项目坐标和构建时间来生成此类文件。 它还允许您添加任意数量的其他属性。 让我们在spring-boot-maven-plugin插件中在我们项目的pom.xml中添加一个build-info目标。 plugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactIdversion2.1.0.RELEASE/versionexecutionsexecutiongoalsgoalbuild-info/goal/goalsconfigurationadditionalPropertiesencoding.sourceUTF-8/encoding.sourceencoding.reportingUTF-8/encoding.reportingjava.source${maven.compiler.source}/java.sourcejava.target${maven.compiler.target}/java.target/additionalProperties/configuration/execution/executions/plugin 现在让我们再次点击信息端点我们可以看到如下构建信息 另外我们可以在application.properties的info键下添加应用程序信息如下所示它们将显示在/ info端点中。 info.application.namespring-actuator
info.application.descriptionspring boot actuator application
info.application.version0.0.1-SNAPSHOT /豆子 bean端点为Spring bean容器中定义的所有bean提供有关每个bean的以下信息 aliases : Names of any aliases
Scope : Scope of bean
type : Fully qualified type of a bean.
resource : Resource(class) in which bean is defined.
dependencies :names of dependent beans. 例如我创建了一个名称为TestController.java的RestController并注入了一个名称为TestService.java的bean。 import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;RestController
public class TestController {Autowiredprivate TestService testService;GetMapping(/messages)public String getMessage() {return Hello;}
}import org.springframework.context.annotation.Configuration;Configuration
public class TestService {} 您可以在下面的ID为testController的屏幕截图中看到它的反映方式。 / configprops configProps端点为您提供了所有带有ConfigurationProperties注释的bean。 在上面的屏幕截图中我们可以看到在Spring框架本身中预定义的两个bean并用ConfigurationProperties注释因此显示在此端点下。 下面的屏幕快照显示了HttpTraceProperties的源代码该代码以ConfigurationProperties注释。 / env env端点按以下顺序为您提供所有特定于环境的信息 System Properties - JVM specific(Platform Independent)
System Env. or Env. Variables - Operating System specific(Platform Dependent)
application level configuration - Defined in application.properties /堆转储 heapdump端点提供了来自应用程序JVM的堆转储。 该端点以HPROF格式返回二进制数据。 由于返回的数据通常很大因此您应该保存并进行分析。 /记录器 loggers端点提供应用程序的记录器以及它们的configureLeveleffectiveLevel如果此记录器的配置级别为null并且其父级也为配置级别则有效级别将为根记录器的记录器级别。 levels属性告诉日志记录框架支持哪些所有级别。 特定记录器的记录器信息 要获取特定记录器的记录器信息请在/ loggers端点后面的URL中传递记录器的名称/ ID如下所示 http// localhost8080 / actuator / loggers / nl.blogpsot.javasolutionsguide.springactuator.SpringActuatorApplication 指标终结点为您提供了可以为应用程序跟踪的所有指标。 检查单个指标 您可以通过将特定指标传递到/ metrics端点之后的URL来跟踪单个指标如下所示 http// localhost8080 / actuator / metrics / jvm.memory.used 一切都在Spring Actuator上感谢阅读。 请与他人分享您认为这可能会有所帮助。 翻译自: https://www.javacodegeeks.com/2018/11/spring-boot-actuator-tutorial.html