解决configserver单点问题

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

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注册中心上

# 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

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的


转载来源:https://juejin.cn/post/7406643531699027979