亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SpringBoot中怎么對actuator進行關閉

發布時間:2023-03-09 14:00:16 來源:億速云 閱讀:459 作者:iii 欄目:開發技術

今天小編給大家分享一下SpringBoot中怎么對actuator進行關閉的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

    SpringBoot對actuator進行關閉

    SpringBoot中怎么對actuator進行關閉

    management:
      endpoint:
        health:
          show-details: ALWAYS
      endpoints:
        enabled-by-default: false #關閉監控
        web:
          exposure:
            include: '*'

    SpringBoot actuator知識梳理

    Spring Boot的Actuator。它提供了很多生產級的特性,比如監控和度量Spring Boot應用程序。Actuator的這些特性可以通過眾多REST端點、遠程shell和JMX獲得。

    【使用環境】

    【1】SpringBoot版本2.5.0、JDK11

    【2】服務端口 9999

    添加依賴

            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-actuator</artifactId>
            </dependency>

    啟動項目,訪問/actuator端點,SpringBoot2.X版本默認只開啟了如下端點

    SpringBoot中怎么對actuator進行關閉

    可以通過下面的方式開啟其他的端點,如果需要關閉某些端點可以在exclude中設置。

    management:
      endpoints:
        web:
          exposure:
            include: "*"
            exclude: ""

    重新啟動項目,可以看到現在展示的端點增加了很多

    SpringBoot中怎么對actuator進行關閉

    Actuator端點整理

    /autoconfig和/conditions 獲取自動配置條件

    提供了一份自動配置報告,記錄哪些自動配置條件通過了,哪些沒通過。新版本已經調整為conditions。Spring Boot自動配置構建于Spring的條件化配置之上。它提供了眾多帶有@Conditional注解的配置類,根據條件決定是否要自動配置這些Bean。/autoconfig端點提供了一個報告,列出了計算過的所有條件,根據條件是否通過進行分組。

    端點:http://localhost:9999/actuator/conditions

    SpringBoot中怎么對actuator進行關閉

    【舉例】

    SpringBoot中怎么對actuator進行關閉

    上面是失敗的一個條件示例,如圖所示是JdbcTemplate,這個類可以幫助我們操作數據庫。因為未引入相關的依賴類所以正如它的提示信息所說:

    “message”: “@ConditionalOnClass did not find required class &lsquo;org.springframework.jdbc.core.JdbcTemplate&rsquo;”

    檢查Classpath沒有要求的JdbcTemplate條件不成立,則不會進行自動配置

    /beans 獲得Bean裝配報告

    要了解應用程序中Spring上下文的情況,最重要的端點就是/beans。它會返回一個JSON文檔,描述上下文里每個Bean的情況,包括其Java類型以及注入的其他Bean。

    請求端點:/actuator/beans

    SpringBoot中怎么對actuator進行關閉

    /env端點查看配置屬性

    /env端點會生成應用程序可用的所有環境屬性的列表,無論這些屬性是否用到。這其中包括環境變量、JVM屬性、命令行參數,以及applicaition.properties或application.yml文件提供的屬性。

    端點:/actuator/env

    SpringBoot中怎么對actuator進行關閉

    /env提供了一些安全策略保護配置的隱私性。為了避免此類信息暴露到/env里,所有名為password、secret、key(或者名字中最后一段是這些)的屬性在/env里都會加上“*”,參考如下:

    SpringBoot中怎么對actuator進行關閉

    /mapping請求URL映射

    /mapping端點展示了所有@RequestMapping 請求路徑

    請求端點:/actuator/mappings

    SpringBoot中怎么對actuator進行關閉

    【測試接口】

        @GetMapping(value = "/hello", produces = "application/json;charset=utf-8")
        public String hello(@RequestParam("name") String name) {
            return "hello world";
        }

    SpringBoot中怎么對actuator進行關閉

    每個映射的值都有兩個屬性:bean和method。bean屬性標識了Spring

    Bean的名字,映射源自這個Bean。method屬性是映射對應方法的全限定方法簽名。

    /metrics運行時指標監控

    /metrics為我們提供了對運行時度量情況的一個監控,能夠在運行時快速檢查應用程序。

    端點:/actuator/metrics

    SpringBoot中怎么對actuator進行關閉

    主要的監控事項如下:

    SpringBoot中怎么對actuator進行關閉

    /metrics端點會返回所有的可用度量值,但你也可能只對某個值感興趣。要獲取單個值,請求時可以在URL后加上對應的鍵名。

    SpringBoot中怎么對actuator進行關閉

    如上圖所示,查詢jvm最大內存,結果值大約為6G。

    /httptrace 追蹤Web請求

    /httptrace端點能報告所有Web請求的詳細信息,包括請求方法、路徑、時間戳以及請求和響應的頭信息。

    【請求端點】/actuator/httptrace

    默認情況下httptrace沒有啟用,它要求一個HttpTraceRepository 的對象Bean.

    SpringBoot中怎么對actuator進行關閉

    在系統中創建如下配置,提供一個HttpTraceRepository 類型的Bean,這里選擇的是InMemoryHttpTraceRepository內存存儲的方式。該方式默認提供最新的100條請求記錄。

    import org.springframework.boot.actuate.trace.http.HttpTraceRepository;
    import org.springframework.boot.actuate.trace.http.InMemoryHttpTraceRepository;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    
    @Configuration
    public class HttpTraceActuatorConfiguration {
    
        @Bean
        public HttpTraceRepository httpTraceRepository() {
            return new InMemoryHttpTraceRepository();
        }
    
    }

    /dump 導出線程快照

    /dump端點會生成當前線程活動的快照。完整的線程導出報告里會包含應用程序的每個線程。其中包含很多線程的特定信息,還有線程相關的阻塞和鎖狀態。

    【請求端點】/threaddump

    SpringBoot中怎么對actuator進行關閉

    【測試】

         Thread thread = new Thread(() -> {
                try {
                    Thread.sleep(1000000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }, "測試線程");
            thread.start();

    SpringBoot中怎么對actuator進行關閉

    /shutdown 優雅的關閉應用程序

    /shutdown可以讓應用服務優雅的關閉,默認是關閉的。假設你要關閉運行中的應用程序。比方說,在微服務架構中,你有多個微服務應用的實例運行在云上,其中某個實例有問題了,你決定關閉該實例并重啟這個有問題的應用程序。在這個場景中,Actuator的/shutdown端點就很有用了。

    SpringBoot中怎么對actuator進行關閉

    優雅的關閉和kill -9的方式是相對的,它不會粗暴的立馬關閉應用,而是會釋放相關鏈接以及執行SpringBoot容器停止后的一些操作,然后再關閉應用。

    【端點】/actuator/shutdown 要求POST請求方式

    【示例】

    在應用中添加一個關閉前處理的鉤子方法

            Runtime.getRuntime().addShutdownHook(new Thread(() -> {
                System.out.println("關閉應用,釋放資源");
            }));

    SpringBoot中怎么對actuator進行關閉

    SpringBoot中怎么對actuator進行關閉

    可以看到通過/actuator/shutdown關閉應用可以觸發這些關閉處理的鉤子函數,方便我們在應用停止時關閉一些連接以及做一些其他的處理。

    整理

    【1】上面實踐了一些Actuator端點示例,雖然Actuator提供的功能很強大,但是在如今的集群化,K8S容器化應用部署下,這些直接訪問某些應用的情況就變得很少了,比如監控Zipkin 、Spring Cloud Sleuth等等,內存監控這一塊K8S容器化平臺也有很多。但是,去學習實踐這樣的一個工具也是很值得的,如果后面有類似監控、關閉應用、獲取請求URL映射、獲取配置等等,那么我們就可以去看看Actuator是如何做的,學習和擴展。

    【2】本次的學習時看的《SpringBoot實戰》書籍的學習筆記,該書Actuator章節后在后面也提及了很多進階的知識,因為具體應用場景不多,下面就簡單的整理下,把一些知識點記錄下來,如果后面需要在重點實踐學習下。

    【3】《SpringBoot實戰》書籍關于Actuator介紹的一些使用可能在當下的版本中有些出入,這里貼上官方文檔地址,參考對比下https://docs.spring.io/spring-boot/docs/current/reference/html/actuator.html#actuator.enabling

    【4】Actuator通過REST端點提供了不少非常有用的信息。另一個深入運行中應用程序內部的方式是使用遠程shell。Spring Boot集成了CRaSH,一種能嵌入任意Java應用程序的shell。Spring Boot還擴展了CRaSH,添加了不少Spring Boot特有的命令,提供了與Actuator端點類似的功能。該工具附上應用上,會在啟動時提供一個訪問秘鑰,我們通過ssh user@localhost -p 2000 的方式就可以去訪問,并且執行一些命令去查看應用數據。

    【5】除了REST端點和遠程shell,Actuator還把它的端點以MBean的方式發布了出來,可以通過JMX來查看和管理。使用JMX是管理Spring Boot應用程序的一個好方法,如果你已在用JMX管理應用程序中的其他MBean,則尤其如此。

    【6】前面我們使用了Actuator所提供好的一些內置端點,我們也可以根據自己的需求擴展定制Actuator。

    • 實際上,Actuator有多種定制方式,包括以下五項。

    • 1:重命名端點。將默認的端點修改為我們自定義的端點地址。

    • 2:啟用和禁用端點。

    • 3:自定義度量信息。

    • 4:創建自定義倉庫來存儲跟蹤數據。

    • 5:插入自定義的健康指示器。

    【7】到這里我們可以看到通過Actuator我們可以看到系統的很多信息,這對于開發者而言很好,但是在安全層面來說,如果不加以限制,那么系統的安全將會有很大隱患。Actuator的端點保護可以用和其他URL路徑一樣的方式&mdash;&mdash;使用Spring Security。在Spring Boot應用程序中,這意味著將Security起步依賴作為構建依賴加入,然后讓安全相關的自動配置來保護應用程序,其中當然也包括了Actuator端點。舉例來說,你想要保護/shutdown端點,僅允許擁有ADMIN權限的用戶訪問。

    以上就是“SpringBoot中怎么對actuator進行關閉”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    营山县| 冷水江市| 马龙县| 城口县| 昭通市| 克什克腾旗| 虹口区| 鱼台县| 格尔木市| 呼伦贝尔市| 临颍县| 德兴市| 宁晋县| 怀化市| 历史| 珲春市| 大连市| 南部县| 华阴市| 承德县| 涿鹿县| 无锡市| 定远县| 灯塔市| 佳木斯市| 泰州市| 壶关县| 寻甸| 神木县| 湖南省| 宜丰县| 玛纳斯县| 贡山| 五指山市| 烟台市| 浦江县| 中宁县| 诸城市| 两当县| 许昌市| 申扎县|