spring-cloud中config配置中心使用(基于eureka的高可用)

高可用

高可用反过来描述就是宕机时间短,使用平均无故障时间来衡量的。对于服务端来说,发现非高可用是比较容易的,只需要看是不是在某个环境存在单点就可以了,可以假设这台机器宕机了,会不会影响到用户使用,如果会那么这里就是单点。

当然了,单点还可能是机房级别的,比如服务仅部署在一个机房,如果一不小心光纤被挖断了,或者机房的整个机架都断电了,那么我们的服务就完全不能服务了,这样的损失是比较大的。

我们一般倾向的是,最好不受部分故障的影响,实在不行我们最请求降级,有意的拒绝一些请求来让系统继续保持服务,都是比较好的。

高可用有三种方式:1.主从复制,主服务挂掉后,从服务升级为主服务继续工作;2.双击热备,一台工作,一台stand by,工作的挂掉后,stand by的继续工作;3.集群,很多服务器同时工作,一台挂掉后,前端或者代理踢出这台服务器,不再向它发送请求。

config server高可用

config server的高可用方案,是借助eureka实现的,也就是高可用方案的第三种集群。

多台config server同时工作,一台挂掉后eureka服务器通知客户端,客户端后续不再从这里请求配置信息。

新加入的客户端从eureka注册服务获取配置信息的时候也不会从这台服务器获取。

spring-cloud中config配置中心使用(基于eureka的高可用)_第1张图片

eureka注册服务器

参见《spring-cloud中eureka进行服务治理》

config server修改

pom.xml增加eureka的依赖:

<dependency>
            <groupId>org.springframework.cloudgroupId>
            <artifactId>spring-cloud-starter-eureka-serverartifactId>
        dependency>

application.yaml增加eureka注册中心的配置:

eureka:
  client:
    serviceUrl:
      defaultZone: http://eureka1:8081/eureka/

ConfigServerApplication.java增加@EnableConfigServer注解

@SpringBootApplication
@EnableConfigServer
@EnableEurekaClient
public class ConfigServerApplication {

客户端修改

pom.xml增加eureka的依赖:

<dependency>
            <groupId>org.springframework.cloudgroupId>
            <artifactId>spring-cloud-starter-eurekaartifactId>
        dependency>

bootstrap.yaml中增加eureka连接配置,同时屏蔽spring. cloud.config.uri 增加:spring.cloud.config.discovery.enabledspring.cloud.config.discovery.serviceId

spring:
  cloud:
    config:
     #uri: http://127.0.0.1:8071
     profile: pro
     label: master
     discovery:
      enabled: true
      serviceId: config-server
  application:
    name: config 
eureka:
  client:
    serviceUrl:
      defaultZone: http://eureka1:8081/eureka/

关于config server配置信息修改自动同步到客户端的内容,由于涉及到bus的功能,这里先不介绍,后续介绍完bus功能之后再行补充。

你可能感兴趣的:(spring,cloud)