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