日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

為Spring Boot應(yīng)用設(shè)置健康檢查

更新時(shí)間:

對(duì)于Spring Boot的應(yīng)用,除了使用HTTP或TCP端口檢測(cè)來進(jìn)行應(yīng)用健康檢查之外,您也可以使用Actuator組件實(shí)現(xiàn)定制化健康檢查。本文介紹如何通過Actuator組件為Spring Boot應(yīng)用設(shè)置健康檢查。

背景信息

Actuator組件是Spring Boot提供的用來對(duì)應(yīng)用系統(tǒng)進(jìn)行自省和監(jiān)控的功能模塊,借助于Actuator,您可以很方便地查看并統(tǒng)計(jì)應(yīng)用系統(tǒng)的某些監(jiān)控指標(biāo)。您也可以通過Actuator組件自定義您的健康檢查程序。更多信息,請(qǐng)參見Spring Boot Actuator官方文檔

操作步驟

  1. 在Maven中添加所需依賴。

    <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
  2. 設(shè)置application.properties配置文件,顯示健康檢查詳細(xì)信息。

    management.endpoints.web.base-path= /           # Actuator 2.0之前默認(rèn)基礎(chǔ)訪問路徑是"/"(則健康檢查為“/health”),2.0及之后默認(rèn)訪問路徑是"/actuator" (則健康檢查為“/actuator/health”)。
    management.endpoint.health.show-details=always  # 顯示健康檢查詳細(xì)信息,默認(rèn)為never,即不顯示。
  3. 您可以通過Actuator組件提供的自動(dòng)配置的健康指示器或者自定義檢查程序?qū)?yīng)用進(jìn)行檢查。

    • 通過自動(dòng)配置的健康檢查器。

      Actuator有些自動(dòng)配置加載的健康檢查指示器(HealthIndicator),例如若應(yīng)用中使用了Redis、MongoDB,那么RedisHealthIndicator以及MongoHealthIndicator就會(huì)被作為健康檢查的一部分。更多關(guān)于自動(dòng)加載的配置信息,請(qǐng)參見自動(dòng)配置加載

      您也可以禁用所有自動(dòng)配置的健康指示器,或者禁用某個(gè)指示器的健康檢查。

      management.health.defaults.enable=false   # 禁用所有默認(rèn)健康檢查指示器。  
      management.health.mongo.enable=false      # 禁用MongoDB健康檢查指示器。
      說明

      請(qǐng)您根據(jù)應(yīng)用,選擇需要開啟的健康檢查指示器。如果您開啟了全部的指示器,可能會(huì)導(dǎo)致健康檢查持續(xù)失敗。

    • 通過自定義檢查程序。此時(shí)您可以通過/health/custom路徑來單獨(dú)獲取這個(gè)健康指示器的結(jié)果。

      新建CustomHealthIndicator.java文件,輸入代碼,實(shí)現(xiàn)您業(yè)務(wù)中特定的檢查內(nèi)容。例如檢查數(shù)據(jù)庫連接是否正常,線程池狀態(tài)等。示例代碼如下所示:

      @Component
      public class CustomHealthIndicator extends AbstractHealthIndicator {
          @Override
          protected void doHealthCheck(Health.Builder builder) throws Exception {
             # 實(shí)現(xiàn)您業(yè)務(wù)中特定的檢查內(nèi)容。
             if (checkSomething()) {  
                 builder.up().withDetail("Item", "xxx").withDetail("error", "null");
             } else {
                 builder.down().withDetail("Item", "xxx").withDetail("error", "xxxErrorCode");
              }
          }
      }
  4. 設(shè)置完成后,運(yùn)行應(yīng)用,進(jìn)行健康檢查。

    • 通過直接訪問默認(rèn)端口進(jìn)行健康檢查。示例命令如下:

      curl 127.0.0.21:8080/health/custom  # custom為健康檢查指示器類名前綴,請(qǐng)以您定義的類名為準(zhǔn)。
      說明
      • Actuator 2.0版本之前默認(rèn)基礎(chǔ)訪問路徑是/,則健康檢查路徑為/health

      • Actuator 2.0及之后版本默認(rèn)訪問路徑是/actuator, 則健康檢查路徑為/actuator/health

      返回示例如下:

      {"status":"UP","details":{"custom":{"status":"UP","details":{"Item","xxx","error","null"}}}}

      狀態(tài)說明如下:

      • UP:HTTP狀態(tài)碼為200,說明健康檢查成功。

      • DOWN:HTTP狀態(tài)碼為503,說明健康檢查失敗。

      說明

      如果這個(gè)檢查路徑中包含了多個(gè)健康指示器的結(jié)果(例如檢查的路徑是/health),只要有一個(gè)指示器的結(jié)果為DOWN,HTTP狀態(tài)碼就會(huì)是503,即健康檢查失敗。

    • SAE控制臺(tái)配置健康檢查。具體步驟,請(qǐng)參見設(shè)置健康檢查健康檢查最佳實(shí)踐