1. 程式人生 > >spring boot admin監控 整合 nacos服務發現

spring boot admin監控 整合 nacos服務發現

測試需要三個使用服務: nacos註冊中心, spring boot admin監控服務(整合nacos client), 測試服務(整合nacos client)

1, nacos註冊中心

下載nacos-server.jar 啟動就可以了,預設埠 8848 ,預設賬號密碼都是:nacos

 

2, spring boot admin監控服務

 

<properties>
		<spring.boot.version>2.1.6.RELEASE</spring.boot.version>
		<spring.boot.admin.version>2.1.6</spring.boot.admin.version>
		<spring.cloud.alibaba.version>2.1.0.RELEASE</spring.cloud.alibaba.version>
	</properties>
	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>com.alibaba.cloud</groupId>
				<artifactId>spring-cloud-alibaba-dependencies</artifactId>
				<version>${spring.cloud.alibaba.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
		</dependencies>
	</dependencyManagement>


<dependencies>
		
		
		<dependency>
			<groupId>de.codecentric</groupId>
			<artifactId>spring-boot-admin-starter-server</artifactId>
			<version>${spring.boot.admin.version}</version>
			
		</dependency>
		
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-jetty</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-mail</artifactId>
		</dependency>

		<dependency>
			<groupId>com.alibaba.cloud</groupId>
			<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
		</dependency>
	</dependencies>

spring boot admin 詳細實現參考: https://www.cnblogs.com/forezp/p/10242004.html

這裡增加了spring-cloud-starter-alibaba-nacos-discovery

配置項變化:

#spring.boot.admin.client.url=http://127.0.0.1
#spring.boot.admin.client.username=${spring.application.name}
#spring.boot.admin.client.password=password
#
#spring.boot.admin.client.instance.name=${spring.application.name}
#spring.boot.admin.client.instance.service-base-url=http://localhost:8081
#spring.boot.admin.client.instance.metadata.user.name=name
#spring.boot.admin.client.instance.metadata.user.password=password

spring boot admin client相關配置不再需要,通過服務註冊可以自動發現 

spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
spring.cloud.nacos.discovery.metadata.user.name=name
spring.cloud.nacos.discovery.metadata.user.password=password
spring.cloud.nacos.discovery.metadata.management.context-path=/admin/actuator

這裡需要注意的是metadata相關的配置

spring.cloud.nacos.discovery.metadata.user.name=name
spring.cloud.nacos.discovery.metadata.user.password=password

增加這兩項,預設會使用basic auth進行登入

 

spring.cloud.nacos.discovery.metadata.management.context-path=/admin/actuator

這裡指定actuator請求的字首,要包括server.servlet.context-path 配置的字首, 這個配置是重點, 找了好久才發現, 當你actuator端點配置不是預設的/actuator,也就是:management.endpoints.web.base-path=/admin/actuator

 

3, 測試服務

當沒有nacos時整合的是spring-boot-admin-starter-client

<dependency>
			<groupId>de.codecentric</groupId>
			<artifactId>spring-boot-admin-starter-client</artifactId>
			<version>2.1.6</version>
		</dependency>

有了nacos, 就不需要spring-boot-admin-starter-client這個了,換成spring-cloud-starter-alibaba-nacos-discovery

<dependency>
			<groupId>com.alibaba.cloud</groupId>
			<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
			<version>2.1.0.RELEASE</version>
		</dependency>

這個服務用來檢測服務是否可用, 跟2配置基本一致,只是沒有spring boot admin

 

三個服務都啟動後,在第2個服務上可以看到兩個服務(第1個和第2個)