天天看點

分布式配置中心服務化 (spring cloud config + consul)

分布式配置中心服務化 (spring cloud config + consul)

1、首先配置服務端config-server

1.1 在pom.xml中加入以下配置:

<-- 所有相關依賴都可以自動關聯-->
<dependencyManagement>
 <dependencies>
 <dependency>
 <groupId>org.springframework.cloud</groupId>
 <artifactId>spring-cloud-dependencies</artifactId>
 <version>Finchley.SR2</version>
 <type>pom</type>
 <scope>import</scope>
 </dependency>
 </dependencies>
</dependencyManagement>


<!-- spring cloud config server必須依賴-->
<dependency>
 <groupId>org.springframework.cloud</groupId>
 <artifactId>spring-cloud-config-server</artifactId>
</dependency>
<!-- 服務監控-->
<dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

<!-- 服務發現-->

<dependency>
 <groupId>org.springframework.cloud</groupId>
 <artifactId>spring-cloud-starter-consul-discovery</artifactId>
</dependency>
           

1.2 參考https://www.jianshu.com/p/57f2a9f6fea9服務端配置的第2、3步驟

2、配置用戶端config-client

2.1 在pom.xml中加入以下配置:

<-- 所有相關依賴都可以自動關聯-->
<dependencyManagement>
 <dependencies>
 <dependency>
 <groupId>org.springframework.cloud</groupId>
 <artifactId>spring-cloud-dependencies</artifactId>
 <version>Finchley.SR2</version>
 <type>pom</type>
 <scope>import</scope>
 </dependency>
 </dependencies>
</dependencyManagement>


<!-- spring cloud config client必須依賴-->
<dependency>
 <groupId>org.springframework.cloud</groupId>
 <artifactId>spring-cloud-starter-config</artifactId>
</dependency>
<!-- 服務監控-->
<dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

<!-- 服務發現-->

<dependency>
  <groupId>org.springframework.cloud</groupId>
 <artifactId>spring-cloud-starter-consul-discovery</artifactId>
</dependency>
           

2.2 參考https://www.jianshu.com/p/57f2a9f6fea9用戶端配置的第2、4、5、6步驟

3、測試以及常見問題

3.1 本地測試consul的話,分别在服務端和用戶端的bootstrap.properties檔案裡,增加這兩個配置

spring.cloud.consul.host=localhost
spring.cloud.consul.port=8500
           

3.2 手動重新整理配置接口:http://localhost:8092/actuator/refresh,必須是post請求,如果修改了哪些字段,出參就會說明

3.3 重新整理接口報404,參考https://blog.csdn.net/zzzgd_666/article/details/84322947

3.4 啟動失敗,不能正常拉取config-server的配置,原因是cloud版本與boot版本不比對,參考spring cloud config官網https://spring.io/projects/spring-cloud可以看到具體版本對應