一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

Spring Boot (十): Spring Boot Admin 監(jiān)控 Spring Boot 應(yīng)用

 新用戶32269360 2020-06-18
Spring Boot (十): Spring Boot Admin 監(jiān)控 Spring Boot 應(yīng)用

1. 引言

在微服務(wù)的體系中,我們的服務(wù)數(shù)量是非常多的,這同樣不方便我們?nèi)斯す芾?,在這樣的背景下,誕生了另一個開源軟件,也是本篇文章要介紹的: Spring Boot Admin 。

2. Spring Boot Admin 簡介

Spring Boot Admin 是一個 Web 應(yīng)用,用于管理和監(jiān)視 Spring Boot 應(yīng)用程序的運行狀態(tài)。每個 Spring Boot 應(yīng)用程序都被視為客戶端并注冊到管理服務(wù)器。背后的數(shù)據(jù)采集是由 Spring Boot Actuator 端點提供。前端 Spring Boot Admin UI 展示使用 VueJs 將數(shù)據(jù)展示在前端。(了解源碼可+求求: 1791743380)

本文將介紹如何使用 Spring Boot Admin 對 Spring Boot 進行監(jiān)控。

3. 工程實戰(zhàn)

3.1 創(chuàng)建父工程 spring-boot-admin

依賴文件 pom.xml 如下:

代碼清單:spring-boot-admin/pom.xml


<properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version><spring-cloud.version>Greenwich.SR3</spring-cloud.version><spring-boot-admin.version>2.1.5</spring-boot-admin.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring-cloud.version}</version><type>pom</type><scope>import</scope></dependency><dependency><groupId>de.codecentric</groupId><artifactId>spring-boot-admin-dependencies</artifactId><version>${spring-boot-admin.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement>
  • 在 <dependencyManagement> 中增加 spring-boot-admin-dependencies 的版本配置,因為 spring-boot-admin 有關(guān)的版本信息未集成在 spring-boot-dependencies 中,咱也不知道為啥,咱也不敢問。

3.2 創(chuàng)建子工程 spring-boot-admin-server

Spring Boot Admin 可以用作單臺服務(wù)的監(jiān)控,也可用于集群的監(jiān)控,我們先介紹單臺服務(wù)的監(jiān)控配置。

pom.xml 配置文件如下:

代碼清單:spring-boot-admin/spring-boot-admin-server/pom.xml


<dependency><groupId>de.codecentric</groupId><artifactId>spring-boot-admin-starter-server</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></dependency>

注意: 如果只是單臺服務(wù)使用,只需引入 spring-boot-admin-starter-server 的依賴即可, spring-cloud-starter-netflix-eureka-client 此依賴是 Spring Boot Admin 基于 Eureka 服務(wù)中心會使用到的依賴。

配置文件 application.yml 如下:

代碼清單:spring-boot-admin/spring-boot-admin-server/src/main/resources/application.yml


server:  port: 8888spring:  application:    name: spring-boot-admin-servereureka:  instance:    leaseRenewalIntervalInSeconds: 10    health-check-url-path: /actuator/health  client:    registryFetchIntervalSeconds: 5    serviceUrl:      defaultZone: ${EUREKA_SERVICE_URL:http://localhost:8761}/eureka/management:  endpoints:    web:      exposure:        include: "*"  endpoint:    health:      show-details: ALWAYS

注意: 單機版本無需配置其中的 eureka.***.*** 等相關(guān)內(nèi)容。

啟動主類 SpringBootAdminServerApplication.java 如下:

代碼清單:spring-boot-admin/spring-boot-admin-server/src/main/java/com/springboot/springbootadminserver/SpringBootAdminServerApplication.java


@SpringBootApplication@EnableAdminServer@EnableEurekaClientpublic class SpringBootAdminServerApplication {    public static void main(String[] args) {
        SpringApplication.run(SpringBootAdminServerApplication.class, args);
    }

}

注意: 單機版本無需添加 @EnableEurekaClient 注解。

3.3 創(chuàng)建子工程 spring-boot-admin-clienta

此工程為 Spring Boot Admin 單機版演示用例。

pom.xml 如下:spring-boot-admin/spring-boot-admin-clienta/pom.xml

代碼清單:


<dependency><groupId>de.codecentric</groupId><artifactId>spring-boot-admin-starter-client</artifactId></dependency>
  • 此工程僅需引入 spring-boot-admin-starter-client Spring Boot Admin 的客戶端即可。

配置文件 application.yml 如下:

代碼清單:spring-boot-admin/spring-boot-admin-clienta/src/main/resources/application.yml


server:  port: 9090spring:  application:    name: spring-boot-clienta  boot:    admin:      client:        url: http://localhost:8888management:  endpoints:    web:      exposure:        include: "*"  endpoint:    health:      show-details: ALWAYS
  • spring.application.name 配置的名稱會在 Spring Boot Admin 的 UI 界面中顯示出來。

  • spring.boot.admin.client.url 配置的是我們 Spring Boot Admin 服務(wù)端的地址。

  • management.endpoints.web.exposure.include 開啟 Spring Boot Actuator 的全部監(jiān)控。

  • management.endpoint.health.show-details 開啟 Spring Boot Actuator 監(jiān)控的應(yīng)用的詳細(xì)的應(yīng)用健康信息。

啟動 spring-boot-admin-server 工程和 spring-boot-admin-clienta ,稍等一會, spring-boot-admin-clienta 會自動注冊到 spring-boot-admin-server 上面去。

打開瀏覽器訪問 http://localhost:8888/ ,這時我們可以看到 Spring Boot Admin 監(jiān)控圖,如下:

Spring Boot (十): Spring Boot Admin 監(jiān)控 Spring Boot 應(yīng)用

點擊后會進入該應(yīng)用的詳細(xì)信息,我們可以看到 Spring Boot Admin 使用圖形化的界面展示了該應(yīng)用的各種信息,如下:

Spring Boot (十): Spring Boot Admin 監(jiān)控 Spring Boot 應(yīng)用

3.4 創(chuàng)建子工程 spring-boot-admin-client

此工程示例為微服務(wù)版本的 Spring Boot Admin 使用示例,其中使用服務(wù)中心 Eureka 注冊服務(wù), Spring Boot Admin 會從服務(wù)中心 Eureka 上讀取相關(guān)的信息,進行服務(wù)監(jiān)控。這樣我們就不需要在客戶端再配置 Spring Boot Admin 的服務(wù)地址,后續(xù)如果 Spring Boot Admin 服務(wù)發(fā)生地址遷移等事情時,也無需修改客戶端的配置文件。

Eureka 代碼示例這里不再列出,如果有需要補課的同學(xué),可以訪問筆者的 《Spring Cloud 系列文章》 。

工程依賴 pom.xml 如下:

代碼清單:spring-boot-admin/spring-boot-admin-client/pom.xml


<dependency><groupId>de.codecentric</groupId><artifactId>spring-boot-admin-starter-client</artifactId></dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></dependency>
  • 這里僅添加 Spring Boot Admin 的客戶端和 Spring Cloud Eureka 的客戶端依賴。

配置文件 application.yml 如下:

代碼清單:spring-boot-admin/spring-boot-admin-client/src/main/resources/application.yml


server:  port: 8080spring:  application:    name: spring-boot-admin-clienteureka:  instance:    leaseRenewalIntervalInSeconds: 10    health-check-url-path: /actuator/health  client:    registryFetchIntervalSeconds: 5    serviceUrl:      defaultZone: ${EUREKA_SERVICE_URL:http://localhost:8761}/eureka/management:  endpoints:    web:      exposure:        include: "*"  endpoint:    health:      show-details: ALWAYS
  • 對比前面單機版的配置,這里去掉了 Spring Boot Admin 服務(wù)地址的配置,增加了 Eureka 服務(wù)中心的配置。

啟動主類 SpringBootAdminClientApplication.java 如下:

代碼清單:


@SpringBootApplication@EnableEurekaClientpublic class SpringBootAdminClientApplication {    public static void main(String[] args) {
        SpringApplication.run(SpringBootAdminClientApplication.class, args);
    }

}
  • @EnableEurekaClient 含義為啟用 Eureka 客戶端,實測雖然這里不寫也一樣會啟用,但是最好還是寫一下吧:)

測試:

修改編輯器 idea 配置,在兩個不同的端口啟動子工程 spring-boot-admin-client ,打開 Spring Boot Admin 的 UI 界面,顯示如下:

Spring Boot (十): Spring Boot Admin 監(jiān)控 Spring Boot 應(yīng)用

Spring Boot (十): Spring Boot Admin 監(jiān)控 Spring Boot 應(yīng)用

可以看到,這里顯示了兩個應(yīng)用( APPLICATIONS ),一個是我們的 spring-boot-admin-server 本身的監(jiān)控,還有一個是我們的 spring-boot-admin-client 應(yīng)用,且該應(yīng)用有兩個實例( INSTANCES ),分別位于兩個不同的端口 8080 和 8081 。點進去一樣可以看到對應(yīng)的實例的詳情。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    五月婷日韩中文字幕四虎| 五月综合婷婷在线伊人| 国产在线视频好看不卡| 国产亚洲系列91精品| 午夜福利视频日本一区| 高潮日韩福利在线观看| 麻豆国产精品一区二区| 欧美三级大黄片免费看| 五月的丁香婷婷综合网| 中国日韩一级黄色大片| 91欧美日韩中在线视频| 久热在线视频这里只有精品| 草草草草在线观看视频| 五月婷婷六月丁香狠狠| 狠狠干狠狠操在线播放| 亚洲妇女作爱一区二区三区| 99久免费精品视频在线观| 一区二区三区日本高清| 国产亚洲不卡一区二区| 国产欧美一区二区三区精品视| 天堂热东京热男人天堂| 五月的丁香婷婷综合网| 欧美人与动牲交a精品| 欧美熟妇喷浆一区二区| 国产精品成人一区二区在线| 99久久精品久久免费| 精品欧美一区二区三久久| 国产免费一区二区三区av大片| 国产精品久久熟女吞精| 丝袜美女诱惑在线观看| 国产精品制服丝袜美腿丝袜| 91香蕉视频精品在线看| 国产精品欧美一区两区| 色婷婷日本视频在线观看| 后入美臀少妇一区二区| 91麻豆视频国产一区二区| 国产欧美日韩精品一区二区| 国产毛片不卡视频在线| 99久久免费看国产精品| 日本欧美视频在线观看免费| 日本深夜福利在线播放|