文章目录
前面是通过直接指定uri方式获取,对于整个系统,如果配置服务挂掉了,就要玩完,怎么办。
通过配置多台配置服务,实现集群。
此篇通过Git配置中心,获取配置,svn雷同。
0.准备
必须用到服务中心。
1. Config Server
同之前的git版Config Server,不再赘述。区别就在于,双开服务,port不一样。
2. Config Client
2.1 pom.xml
同git版
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
2.2 application配置
此处和先前稍作调整
2.2.1 application.yml
spring:
application:
name: config-client
server:
port: 8811
这里,服务发现相关配置转到bootstrap配置里。
2.2.2 bootstrap.yml
spring:
cloud:
config:
#对应{application}部分
name: cloud-config
#对应{profile}部分
profile: dev
#配置中心的具体地址
# uri: http://localhost:8810/
#对应git的分支。如果配置中心使用的是本地存储,则该参数无用
label: master
discovery:
#开启Config服务发现支持
enabled: true
service-id: config-server
#要把服务发现提前,因为要提前通过服务中心获取,不能放在application.yml里
eureka:
client:
serviceUrl:
defaultZone: http://localhost:8800/eureka/
这里,spring.cloud.config.uri
不需要配置。增加两个配置:
spring.cloud.config.discovery.enabled=true 打开服务发现
spring.cloud.config.discovery.service-id=config-server 配置服务名称
然后服务中心服务发现相关配置移到这里,因为cloud配置需要用到服务发现。
2.3 其他
同git版配置。
2.4 运行测试
可以看到,现在配置服务有两个节点,分别是8830,8831端口。
访问 http://localhost:8811/hello
dev-in
此时,关闭一个配置服务
访问 http://localhost:8811/hello
dev-in
还是能收到数据。