0%

解决configserver单点问题

解决configserver单点问题

之前我们在config的客户端配置configserver的地址是

1
2
3
4
5
6
7
8
9
spring:
application:
name: micro-service-config-client
cloud:
config:
name: micro-service-config-client #github上的资源文件名,对应上述的application,该值默认为${spring.application.name}的值
profile: dev # 环境
label: master # git分支
uri: http://localhost:7010 #spring cloud 服务端地址

但是如果该configserver挂掉了,那就无法获取最新的配置了,微服务就出现了configserver的单点问题,那么如何避免configserver单点呢?

SpringCloudConfig早就想到了这个问题了,微服务可以使用注册中心来防止单点故障,那么configServer也是可以的

首先将configServer注册到eureka注册中心上

1
2
3
4
5
6
7
8
# eureka 配置
eureka:
client: # 注册到eureka server注册中心
service-url:
defaultZone: http://localhost:7001/eureka # eureka server提供的注册地址
instance:
instance-id: springcloud2-springcloudconfig # 服务实例名称,在eureka server页面中的status列中
prefer-ip-address: true # 访问路径显示ip

然后在configClient端配置configServer地址的时候不使用uri的方式,而使用serviceId

1
2
3
4
5
6
7
8
9
10
11
12
spring:
application:
name: springcloud2-config-client
cloud:
config:
name: springcloud2-config #github上的资源文件名
profile: dev # 环境
label: master # git分支
# uri: http://localhost:7010 #spring cloud 服务端地址
discovery:
service-id: springcloud2-springcloudconfig # 可以使用eureka来访问到对应的configserver微服务,防止configserver单点问题
enabled: true

当然,configClient也要注册到注册中心上,不然是肯定找不到对应的configServer的

欢迎关注我的其它发布渠道