美文网首页
Eureka自我保护

Eureka自我保护

作者: piziyang12138 | 来源:发表于2020-02-28 11:55 被阅读0次
  • 失效剔除
    有些时候,我们的服务实例并不一定会正常下线,可能由于内存溢出、网络故障气因使得服务不能正常工作,而服务注册中心并未收到“服务下线”的请求。为了从服务表中将这些无法提供服务的实例剔除,Eureka Server 在启动的时候会创建一个定时任多默认每隔一一段时间(默认为60秒)将当前清单中超时(默认为90秒)没有续约的服务除出去

  • 自我保护
    当我们在本地调试基于Eureka的程序时,基本上都会碰到这样-一个问题, 在服务主中心的信息面板中出现类似下面的红色警告信息

    EMERGENCY! EUREKA MAY BE INCORRECTLY CLAIMING INSTANCES ARE UP WHEN THEY 'RERENENALS ARE LESSER THAN THRESHOLD AND HENCE THE INSTANCES ARE NOT BEING EXPIREDTO BE SAFE.
    

实际上,该警告就是触发了Eureka Server的自我保护机制。之前我们介绍过,服务注册到Eureka Server之后,会维护个心跳连接, 告诉Eureka Server自己还活 着。Eureka Server在运行期间,会统计心跳失败的比例在15分钟之内是否低于85%如果出现低于的情况单机调试的时候很容易满足,实际在生产环境上通常是由于网络不稳定导致),EuServer会将当前的实例注册信息保护起来,让这些实例不会过期,尽可能保护这些注册信-息。但是,在这段保护期间内实例若出现问题,那么客户端很容易拿到实际已经不存服务实例,会出现调用失败的情况,所以客户端必须要有容错机制,比如可以使用请使用重试、断路器等机制。
由于本地调试很容易触发注册中心的保护机制,这会使得注册中心维护的服务实仍那么准确。所以,我们在本地进行开发的时候,可以使用eureka . server . enablself preservation=false参数来关闭保护机制,以确保注册中心可以将不可用的例正确剔除。

  • 关闭服务保护
    服务端配置
###服务端口号
server:
  port: 8100
##定义服务名称
spring:
  application:
    name: app-itmayiedu-eureka
eureka:
  instance:
    ###注册中心ip地址
    hostname: 127.0.0.1
  client:
    serviceUrl:
    ##注册地址
      defaultZone: http://${eureka.instance.hostname}:8100/eureka/
    ####因为自己是注册中心,是否需要将自己注册给自己的注册中心(集群的时候是需要是为true)
    register-with-eureka: false
    ###因为自己是注册中心, 不需要去检索服务信息
    fetch-registry: false
###保护关闭配置。本地开发建议关闭
  server:
    # 测试时关闭自我保护机制,保证不可用服务及时踢出
    enable-self-preservation: false
    eviction-interval-timer-in-ms: 2000

客户端配置

###订单服务的端口号
server:
  port: 8001
###服务别名----服务注册到注册中心名称 
spring:
  application:
    name: app-itmayiedu-order
eureka:
  client:
    service-url:
    ##### 当前会员服务注册到eureka服务地址
       defaultZone: http://localhost:8100/eureka
    ### 需要将我的服务注册到eureka上
    register-with-eureka: true
    ####需要检索服务
    fetch-registry: true
    registry-fetch-interval-seconds: 30
# 心跳检测检测与续约时间
# 测试时将值设置设置小些,保证服务关闭后注册中心能及时踢出服务
  instance:
###Eureka客户端向服务端发送心跳的时间间隔,单位为秒(客户端告诉服务端自己会按照该规则)  
    lease-renewal-interval-in-seconds: 1
####Eureka服务端在收到最后一次心跳之后等待的时间上限,单位为秒,超过则剔除(客户端告诉服务端按照此规则等待自己)
    lease-expiration-duration-in-seconds: 2    

相关文章

  • Eureka的自我保护与健康检查机制

    Eureka的自我保护与健康检查机制 Eureka的自我保护 Eureka的自我保护是默认开启的如果需要关闭需要加...

  • 理解Eureka的自我保护模式

    本文我们来探讨Eureka的自我保护模式。自我保护模式是Eureka的重要特性。进入自我保护模式最直观的体现,是E...

  • 理解Eureka的自我保护模式

    概要 自我保护模式是Eureka的重要特性。进入自我保护模式最直观的体现,是Eureka Server首页输出的警...

  • Eureka自我保护

    失效剔除有些时候,我们的服务实例并不一定会正常下线,可能由于内存溢出、网络故障气因使得服务不能正常工作,而服务注册...

  • Eureka的服务配置大全

    Eureka Server 常用配置 服务端开启自我保护模式 eureka.server.enable-self-...

  • SpringCloud之服务注册与发现Eureka

    1.服务发现简介2.Eureka原理3.Eureka示例4.Eureka集群5.Eureka自我保护模式6.Eur...

  • Eureka实现原理

    Eureka自我保护 Eureka Server 在运行期间会去统计心跳失败比例在 15 分钟之内是否低于 85%...

  • Eureka自我保护机制

    概念 两种角色:EurekaClient客户端EurekaServer服务器端 默认情况: EurekaClien...

  • Eureka自我保护机制

    Eureka在CAP理论当中是属于AP , 也就说当产生网络分区时,Eureka保证系统的可用性,但不保证系统里面...

  • Eureka自我保护机制

    如果已经用过或者准备用Eureka的小伙伴们可以看下这篇文章,这里的话是博主的一些小分享。准备使用Eureka的小...

网友评论

      本文标题:Eureka自我保护

      本文链接:https://www.haomeiwen.com/subject/ypikhhtx.html