正如我们所看到的,没有像我们在1.x中得到的实际度量。为了得到一个特定指标的实际值,我们现在可以导航到所需的指标,例如,/actuator/metrics/jvm.gc.pause
,然后得到一个详细的响应。
现在的度量标准要彻底得多,不仅包括不同的值,还包括一些相关的元数据。
创建一个自定义路径
正如我们之前指出的,我们可以创建自定义路径。不过,Spring Boot 2重新设计了实现的方式,以支持新的技术无关的范式。让我们创建一个Actuator路径,在我们的应用程序中查询、启用和禁用功能标志。
为了获得路径,我们需要一个Bean。在我们的例子中,我们使用@Component来做这个。同时,我们需要用@Endpoint来装饰这个Bean。我们的端点的路径是由@Endpoint的id参数决定的。在我们的例子中,它将把请求路由到/actuator/features。一旦准备就绪,我们就可以开始使用定义操作了。
- @ReadOperation。它将映射到HTTP GET。
- @WriteOperation。它将映射到HTTP POST。
- @DeleteOperation。它将映射到HTTP DELETE。
当我们在应用程序中使用前一个端点运行应用程序时,Spring Boot将注册它。验证这一点的一个快速方法是检查日志。
扩展现有的端点
想象一下,如果我们想确保应用程序的生产实例永远不是SNAPSHOT版本。我们决定通过改变返回该信息的 Actuator 端点的HTTP状态代码,即/info来做到这一点。如果我们的应用程序碰巧是SNAPSHOT,我们会得到一个不同的HTTP状态代码。
我们可以使用 @EndpointExtension 注解,或其更具体的特殊化@EndpointWebExtension或@EndpointJmxExtension,轻松地扩展预定义端点的行为。
启用所有端点
为了能够使用 HTTP 访问 Actuator 的端点,我们需要启用和公开它们。默认情况下,除了/shutdown,所有的端点都是启用的。默认情况下,只有/health和/info这两个端点是公开的。我们需要添加以下配置来公开所有端点。
要明确地启用一个特定的端点(例如,/shutdown)
要公开所有已启用的端点,除了一个(例如,/loggers)
总结
在这篇文章中,我们谈到了Spring Boot Actuator。我们首先解释了Actuator的含义以及它为我们做了什么。接下来,我们重点讨论了当前Spring Boot 2.x版本的Actuator,讨论了如何使用它、调整它和扩展它。我们还谈到了在这个新的迭代中我们可以发现的重要的安全变化。我们讨论了一些流行的端点,以及它们是如何变化的。
面试大全包括:包括 Java 集合、JVM、多线程、并发编程、设计模式、SpringBoot、SpringCloud、Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、MongoDB、Redis、MySQL、RabbitMQ、Kafka、Linux、Netty、Tomcat、Python、HTML、CSS、Vue、React、JavaScript、Android 大数据、阿里巴巴等大厂面试题等、等技术栈!