zoukankan      html  css  js  c++  java
  • 20.Spring-Cloud中Eureka自我保护模式和@SpringCloudApplication

          默认情况下,如果Eureka Server在一定时间内没有接收到某个微服务实例的心跳,Eureka Server将会注销实例(默认90秒)。但是当网络分区故障发生时,微服务与Eureka  Server之间无法正常通信,以上行为可能变得非常危险-----因为微服务本省其实是健康的,此时不应该注销这个微服务。

          Eureka通过“自我保护模式”来解决这个问题------当Eureka  Server节点在短时间内丢失过多客户端时(可能发生网络分区故障),那么这个节点就会进入自我保护模式。一旦进入自我保护模式,Eureka  Server就会保护服务注册表中的信息,不再删除服务注册表中的数据(也就是不会注销任何微服务)。当网络故障恢复后,该Eureka  Server节点会自动退出自我保护模式。

          综上,自我保护模式是一种应用网络异常的安全保护措施。它是宁可同时保留所有微服务(健康的和不健康的),也不盲目注销任何健康的服务。使用自我保护模式,可以让Eureka集群更加健壮、稳定。

         在Spring Cloud中可以使用eureka.server.enable-self-preservation=false禁用自我保护模式。

    @SpringCloudApplication时一个注解的集合

    使用@SpringCloudApplication包括,Springboot注解,注册服务到注册中心注解,熔断器注解。在SpringCloud看来这是每一微服务所必须应有的三个注解,所以才推出了@SpringCloudApplication注解。

    使用@SpringCloudApplication需要进入Springboot依赖外,还需要引入下边。

      <!--将微服务注册到注册中心 -->
    <dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-eureka</artifactId>
    </dependency>
    <!--@SpringCloudApplication注解需要依赖的  熔断器  -->
    <dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-hystrix</artifactId>
    </dependency>
     

     微信公众号

     

     

  • 相关阅读:
    jekyll简单使用
    三、ansible简要使用
    四、ansible主机组定义
    项目中远程连接404 NOT FOUND问题的原因以及解决办法(这里只涉及我遇到的问题)
    AS3中的位操作
    AS3中is和as操作符的区别
    static 函数和普通函数的区别
    [译] SystemTap
    2017-09-17 python 学习笔记
    xargs 命令使用小记
  • 原文地址:https://www.cnblogs.com/niugang0920/p/12192883.html
Copyright © 2011-2022 走看看