日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

在传统Spring应用中使用spring-boot-actuator模块提供监控端点

發布時間:2024/7/5 javascript 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在传统Spring应用中使用spring-boot-actuator模块提供监控端点 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在之前發布的《Spring Boot Actuator監控端點小結》一文中,我們介紹了Spring Boot Actuator模塊為應用提供的強大監控能力。在Spring Boot應用中,我們只需要簡單的引入spring-boot-starter-actuator依賴就能為應用添加各種有用的監控端點。其中,/health端點能夠全面檢查應用的健康狀態,該端點也被Spring Cloud中的服務治理(Eureka、Consul)用來檢查應用的健康狀態。所以,在使用Spring Cloud構建微服務架構的時候,如果還存在一些遺留的傳統Spring應用時,我們就需要為這些應用也加入/health端點。那么在傳統的Spring應用中我們是否也能引入該模塊來提供這些有用的監控端點呢?下面我們就來介紹整合的詳細步驟:

第一步:引入相關依賴

由于在傳統Spring應用中,我們不能直接使用Starter POMs。所以,我們需要拆解了來引入到傳統Spring應用的pom.xml中,主要有如下兩個依賴:

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-actuator</artifactId>
<version>1.4.3.RELEASE</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>4.3.2.Final</version>
</dependency>

第二部:手工引入配置

由于在傳統Spring應用中沒有自動化配置功能,所以我們需要手工的來創建配置并啟用Spring Boot Actuator的監控端點。比如,我們先來創建一個實現/health端點的配置,具體如下:

@Configuration
@Import({ EndpointAutoConfiguration.class,
HealthIndicatorAutoConfiguration.class})
public class MyAppSpringConfig {

@Bean
public EndpointHandlerMapping endpointHandlerMapping(
Collection<? extends MvcEndpoint> endpoints) {
return new EndpointHandlerMapping(endpoints);
}

@Bean
public HealthMvcEndpoint healthMvcEndpoint(HealthEndpoint delegate) {
return new HealthMvcEndpoint(delegate, false);
}

}

其中,@Import中引入的org.springframework.boot.actuate.autoconfigure.EndpointAutoConfiguration類是Spring Boot Actuator的基礎配置類。org.springframework.boot.actuate.autoconfigure.HealthIndicatorAutoConfiguration類是/health端點的基礎配置,具體內容本文不做詳細展開,讀者可自行查看。而在該配置類中,還創建了兩個Bean,其中EndpointHandlerMapping是org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping的子類,它用來加載所有的監控端點;而HealthMvcEndpoint是具體的/health端點實現。

在完成上面配置之后,我們就可以啟動Spring應用,此時就可以看控制臺中看到打印出了/health端點,我們可以嘗試訪問該端點來獲取當前實例的健康狀況。

除了在傳統應用中可以加載/health端點之外,我們也可以如法炮制地創建其他端點,比如:獲取各個度量指標的/metrics端點,可以通過如下配置實現:

@Configuration
@Import({ EndpointAutoConfiguration.class,
PublicMetricsAutoConfiguration.class,
HealthIndicatorAutoConfiguration.class})
public class MyAppSpringConfig {

@Bean
public EndpointHandlerMapping endpointHandlerMapping(
Collection<? extends MvcEndpoint> endpoints) {
return new EndpointHandlerMapping(endpoints);
}

@Bean
public HealthMvcEndpoint healthMvcEndpoint(HealthEndpoint delegate) {
return new HealthMvcEndpoint(delegate, false);
}

@Bean
public EndpointMvcAdapter metricsEndPoint(MetricsEndpoint delegate) {
return new EndpointMvcAdapter(delegate);
}

}

這里,我們主要增加了兩個內容:

  • @Import中增加引入PublicMetricsAutoConfiguration配置類
  • 創建/metrics端點的實現Bean

到這里,本文的內容就介紹完了,更多關于傳統Spring應用與Spring Boot/Cloud的配合使用。敬請關注我的博客和公眾號,獲取持續分享。


總結

以上是生活随笔為你收集整理的在传统Spring应用中使用spring-boot-actuator模块提供监控端点的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。