美文网首页
Eureka概念相关

Eureka概念相关

作者: CodeYang | 来源:发表于2021-08-23 09:06 被阅读0次

    展示图

    Eureka.jpeg

    三个角色:

    • 注册中心
    • 服务提供者
    • 服务消费者

    角色之间的关系

    1. 微服务启动,将自身的服务名,地址等信息注册到注册中心。
    2. 服务消费者从注册中心查询到服务列表,调用提供者的服务。
    3. 微服务与注册中心保持心跳检测,如果注册中心与某微服务长时间无法通信,就会注销该实例。
    4. 微服务网络地址发生变化,会重新注册到注册中心。

    自我保护机制

    eureka:
      instance:
        lease-expiration-duration-in-seconds: 10 #服务过期时间配置:
      server:
        enable-self-preservation: false     # false 关闭自我保护机制[立即清除服务信息]
         eviction-interval-timer-in-ms: 2000  #扫描失效服务的间隔时间(单位毫秒,默认是60*1000)即60秒
    
    
    • 不存在自我保护机制时
      当因为网络原因,服务未按时进行心跳续约,此时就把服务从服务列表中剔除并不妥当,因为服务也有可能未宕机。

    • 当开启自我保护机制时:
      Eureka就会把当前实例的注册信息保护起来,不允剔除。这种方式在生产环境下很有效,保证了大多数服务依然可用。

    如果Eureka Server收到的心跳包不足正常值的85%(可配置)就会进入自我保护模式,在这种模式下,Eureka Server不会删除任何服务信息。

    续约

    在服务启动时,会创建一个后台心跳任务,定时去续约服务信息

    服务取消

    服务停止前会向服务治理中心发一个服务取消的请求,用于注销服务。

    Eureka 保证AP

    AP:保证可用性和容错性,放弃一致性。

    Eureka各个节点都是平等的,几个节点挂掉不会影响正常节点的工作,剩余的节点依然可以提供注册和查询服务。而eureka客户端再向某个eureka服务端注册时如果发现连接失败,则会自动切换至其他节点。
    只要有一台eureka server 是ok的,就能保证服务可用(保证服务可用)。只不过查询到的信息可能不是最新的(不保证强一致性)。

    客户端如何拉取服务端已保存的服务信息

    客户端拉取服务端服务信息是通过一个定时任务定时拉取的,每次拉取后刷新本地已保存的信息,需要使用时直接从本地直接获取。

    相关文章

      网友评论

          本文标题:Eureka概念相关

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