qt弹簧教程_弹簧启动执行器教程
qt彈簧教程
朋友您好,在本教程中,我們將學習彈簧執行器及其所有幫助。
1.什么是彈簧執行器?
2.如何在Maven項目或Gradle項目中添加彈簧執行器?
3.創建一個具有Spring Actuator依賴項的Spring Boot項目。
4.使用彈簧執行器端點監視應用程序。
什么是彈簧執行器?
一旦您開發了應用程序并將其部署到生產環境中,就必須檢查已啟動并正在運行的應用程序的運行狀況,這一點非常重要,尤其是對于像銀行應用程序這樣的關鍵任務應用程序(如果需要面向客戶的應用程序)下降,將直接影響銀行業務。
以傳統的方式,在Spring Actuator之前,我們需要編寫代碼來檢查應用程序的運行狀況,但是使用Spring Actuator,我們不需要編寫任何用于運行狀況檢查的代碼,但是Spring Actuator提供了一些現成的端點,可以對于應用程序的健康檢查非常有用。
如何在Maven項目或Gradle項目中添加彈簧執行器?
<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-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依賴關系的Spring Boot項目(與Web和DevTools一起)。
請注意,在撰寫本教程時,Spring Boot版本是2.1.0
將項目導入Eclipse或您選擇的任何其他IDE中,然后運行SpringActuatorApplication.java。
您將在Eclipse控制臺中看到以下內容:
這表明嵌入式Tomcat已在端口8080上啟動,而SpringActuatorApplication已在Tomcat上啟動。 同樣在控制臺日志中,您可以看到執行器端點通過/ actuator URI公開。
018-11-09 20:00:29.346 INFO 8338 — [restartedMain] osbwembedded.tomcat.TomcatWebServer:Tomcat在端口8080(http)上啟動,具有上下文路徑”
2018-11-09 20:00:29.354 INFO 8338 — [restartedMain] nbjsSpringActuatorApplication:在9.273秒內啟動SpringActuatorApplication(JVM運行11.823)
2018-11-09 20:00:29.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對React式Web應用程序的支持時不可用。 |
| 關掉 | 使應用程序正常關閉。 |
| 線程轉儲 | 執行線程轉儲。 |
啟用端點
默認情況下,除關機外的所有端點均處于啟用狀態。 要啟用端點,請在application.properties文件中使用以下屬性。
management.endpoint.<id>.enabled例:
要啟用關閉端點,我們需要在application.properties文件中進行以下輸入:
management.endpoint.shutdown.enabled=true或者,我們可以禁用所有端點,然后有選擇地啟用所需的端點。 使用以下配置,將禁用除info之外的所有端點。
management.endpoints.enabled-by-default=falsemanagement.endpoint.info.enabled=true端點執行器
讓我們點擊URL http:// localhost:8080 / actuator并查看端點。
注意 :我正在使用Postman測試端點,因為它以結構良好的格式顯示JSON。 您可以自由使用任何其他此類工具,也可以僅使用瀏覽器。
在Spring Actuator中公開端點
正如您已經注意到的,在這里只能看到運行狀況和信息端點。 這是因為這些是默認情況下唯一公開的端點。 由于安全原因,默認情況下不會公開所有端點,因為它們可能具有一些敏感信息,因此可能會受到威脅。
暴露特定端點
如果要通過Web(Http)公開其他端點,則需要在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:// localhost:8080 / actuator。
正如我們在下面的屏幕截圖中看到的那樣,env端點也已啟用。
公開所有端點
如果要啟用所有端點,則可以在application.properties中使用通配符*,如下所示。
management.endpoints.web.exposure.include=*
公開所有端點,只有少數端點除外
下面的兩個條目將啟用所有端點,但僅禁用環境端點。
management.endpoints.web.exposure.include=*management.endpoints.web.exposure.exclude=env
禁用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中進行如下配置:
這樣,可以將所有端點作為/ 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派生的,HealthAggregator基本上根據狀態的有序列表對每個HealthIndicator的狀態進行排序。 排序列表中的第一個狀態用作應用程序的最終狀態。
禁用所有自動配置的運行狀況指示器
這些運行狀況指示器默認情況下處于啟用狀態,但是可以使用以下屬性將其禁用:
management.health.defaults.enabled=false禁用各個自動配置的運行狀況指示器
或者,也可以如下禁用單個HealthIndicator,例如,禁用磁盤空間的運行狀況檢查:
management.health.diskspace.enabled=false 注意 :任何HealthIndicator的標識符將是不帶有HealthIndicator后綴的bean的名稱。
例如 :
等等…
自定義健康指標
連同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:// localhost:8080 / 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目標。
<plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>2.1.0.RELEASE</version><executions><execution><goals><goal>build-info</goal></goals><configuration><additionalProperties><encoding.source>UTF-8</encoding.source><encoding.reporting>UTF-8</encoding.reporting><java.source>${maven.compiler.source}</java.source><java.target>${maven.compiler.target}</java.target></additionalProperties></configuration></execution></executions></plugin>現在讓我們再次點擊信息端點,我們可以看到如下構建信息:
另外,我們可以在application.properties的info鍵下添加應用程序信息,如下所示,這些信息將顯示在/ info端點中。
info.application.name=spring-actuator info.application.description=spring boot actuator application info.application.version=0.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端點提供應用程序的記錄器以及它們的configureLevel,effectiveLevel(如果此記錄器的配置級別為null,并且其父級也為配置級別,則有效級別將為根記錄器的記錄器級別)。
level屬性告訴日志記錄框架支持哪些所有級別。
特定記錄器的記錄器信息
要獲取特定記錄器的記錄器信息,請在/ loggers端點后面的URL中傳遞記錄器的名稱/ ID,如下所示:
http:// localhost:8080 / actuator / loggers / nl.blogpsot.javasolutionsguide.springactuator.SpringActuatorApplication
指標終結點為您提供了可以為應用程序跟蹤的所有指標。
檢查單個指標
您可以通過將特定指標傳遞到/ metrics端點之后的URL來跟蹤單個指標,如下所示:
http:// localhost:8080 / actuator / metrics / jvm.memory.used
一切都在Spring Actuator上,感謝閱讀。 請與他人分享,您認為這可能會有所幫助。
翻譯自: https://www.javacodegeeks.com/2018/11/spring-boot-actuator-tutorial.html
qt彈簧教程
總結
以上是生活随笔為你收集整理的qt弹簧教程_弹簧启动执行器教程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ipad怎么添加邮箱(iPad怎么添加邮
- 下一篇: JMetro版本5.2已发布