解决configserver单点问题
之前我们在config的客户端配置configserver的地址是
yaml
代码解读
复制代码
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注册中心上
yaml
代码解读
复制代码
# 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
yaml
代码解读
复制代码
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的