上一篇文章讲述了一个服务如何从配置中心读取文件,配置中心如何从远程git读取配置文件,当服务实例很多时,都从配置中心读取文件,这时可以考虑将配置中心做成一个微服务,将其集群化,从而达到高可用。
一、准备工作
继续使用刚开始的eureka-server工程。
二、改造config-server
1. 在pom.xml文件加上EurekaClient的起步依赖,如下:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
2. 配置文件application.yml加上注册中心地址,如下:
eureka:
client:
service-url:
defaultZone: http://localhost:8761/eureka/
3. 在启动类Application加上@EnableEurekaClient
注解。
三、改造config-client
1. 将其注册到服务注册中心,作为Eureka客户端,需要在pom.xml文件加上EurekaClient的起步依赖,如下:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
2. 修改bootstrap.yml,如下:
server:
port: 8881
spring:
application:
name: config-client
cloud:
config:
label: master
#dev开发环境配置文件、test测试环境、pro正式环境
profile: dev
#配置服务中心的网址
#uri: http://localhost:8888/
discovery:
#是否从注册中心获取配置
enabled: true
#配置中心的服务名称
service-id: config-server
这时发现,在读取配置文件不再写ip地址,而是服务名,这时如果config-server服务部署多份,通过负载均衡,从而高可用。
3. 在启动类Application加上@EnableEurekaClient
注解。
4. 依次启动eureka-server、config-server、config-client
,浏览器访问http://localhost:8881/hi
,显示:
foo version 21