天天看点

分布式配置中心服务化 (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可以看到具体版本对应