1.配置中心从远程git/svn读取配置文件
(1)当服务实例很多时,都从配置中心读取文件
(2)这时可以考虑将配置中心做成一个微服务,将其集群化,从而达到高可用
2.准备工作
(1)改造ConfigServer
<1>在其pom.xml文件加上EurekaClient的起步依赖,代码示例如下:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<2>主启动类上添加注解@EnableEurekaClient
<3>在application.properties文件中添加Eureka相关配置,示例如下:
server.port=8007
spring.application.name:ConfigClient
spring.cloud.config.label=master
spring.cloud.config.profile=dev
spring.cloud.config.uri=http://localhost/8006/
#指定服务注册地址
eureka.client.serviceUrl.defaultZone=http://localhost:8000/eureka/
(2)改造ConfigClient
<1>在其pom.xml文件加上EurekaClient的起步依赖,代码示例如下:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<2>配置文件bootstrap.properties,注意是bootstrap,示例代码如下:
server.port=8007
spring.application.name:ConfigClient
spring.cloud.config.label=master
spring.cloud.config.profile=dev
#spring.cloud.config.uri=http://localhost/8006/
#服务注册地址
eureka.client.serviceUrl.defaultZone=http://localhost:8000/eureka/
#是从配置中心读取文件
spring.cloud.config.discovery.enabled=true
#配置中心的servieId,即服务名
spring.cloud.config.discovery.serviceId=ConfigServer
<3>这时发现,在读取配置文件不再写ip地址,而是服务名
3.1.如果配置服务部署多份,通过负载均衡,从而高可用
3.2.需要配置中心高可用,只需要将配置中心启动多个实例就行了
3.参考文档
(1)源码: https://github.com/forezp/SpringCloudLearning/tree/master/sc-f-chapter7
(2)https://www.fangzhipeng.com/springcloud/2018/08/07/sc-f7-config.html