zoukankan      html  css  js  c++  java
  • Eureka系列(一)Eureka功能介绍

    Eureka核心功能点


    服务注册(register):

      Client会发送一次Rest请求给Server端来实现注册,Server接受到请求会将服务信息存储起来,并将注册信息给同集群其他Server。

    服务续约(renew):

      Client启动的时候,会开启一个定时任务(心跳)周期性发送一次服务续约地Rest请求,证明服务处于可用状态,防止Server剔除掉该可用服务。Eureka Client在默认的情况下会每隔30秒发送一次心跳来进行服务续约。

    服务同步(replicate):

      Eureka Server之间会互相进行注册,构建Eureka Server集群,不同Eureka Server之间会进行服务信息同步,用来保证服务信息的一致性。

    获取服务(get registry):

      Client启动的时候,会开启一个定时任务周期性发送一次获取服务的Rest请求,获取服务信息,然后整合到Client的本地缓存中。Eureka Client在默认的情况下会每隔30秒获取一次Server端服务信息。

    服务调用:

      服务消费者在获取到服务清单后,可以根据清单中的服务信息,进行远程调用。

    服务下线(cancel):

      当Eureka Client需要关闭或重启时,就会发送Rest请求给Server,Server端收到请求会更改实例状态并实例信息剔除掉,同时同步该服务下线消息给其他Server。

    服务剔除(evict):

      有时候,服务实例可能会因为网络故障等原因导致不能提供服务,而此时该实例也没有发送请求给 Server来进行服务下线,所以,还需要有服务剔除的机制。Eureka Server在启动的时候会创建一个定时任 务,每隔一段时间(默认60秒),从当前服务清单中把超时没有续约(默认90秒, eureka.instance.leaseExpirationDurationInSeconds)的服务剔除。

    自我保护机制:

      既然Eureka Server会定时剔除超时没有续约的服务,那就有可能出现一种场景,网络一段时间内发生了 异常,所有的服务都没能够进行续约,Eureka Server就把所有的服务都剔除了,这样显然不太合理。所以,就有了 自我保护机制,当短时间内,统计续约失败的比例,如果达到一定阈值,则会触发自我保护的机制,在该机制下, Eureka Server不会剔除任何的微服务,等到服务恢复正常后,再退出自我保护机制。自我保护开关(eureka.server.enable- self-preservation: false)


    Eureka为什么是AP而不是CP呢

    在解释之前我们需要先了解下分布式领域的CAP理论,
      C - Consistency 一致性:在分布式系统中的所有数据备份,在同一时刻是否同样的值(等同于所有节点访问同一份最新的数据副本)
      A - Availability 可用性:在集群中一部分节点故障后,集群整体是否还能响应客户端的读写请求。(对数据更新具备高可用性)
      P - Partition tolerance 分区容忍性:表示在出现分区的情况下依然能提供服务。

    首先,因为CAP只能选择AP或者CP,Eureka在架构设计时就选择了AP放弃了CP,Eureka认为各个节点都是平等的,几个节点挂掉不会影响正常节点的工作,剩余的节点依然可以提供注册和查询服务。

  • 相关阅读:
    FFmpeg 结构体学习(八):FFMPEG中重要结构体之间的关系
    FFmpeg 结构体学习(七): AVIOContext 分析
    FFmpeg 结构体学习(六): AVCodecContext 分析
    FFmpeg 结构体学习(五): AVCodec 分析
    FFmpeg 结构体学习(四): AVFrame 分析
    FFmpeg 结构体学习(三): AVPacket 分析
    Android 通过onTouchEvent判断是否为双击事件
    FFmpeg 结构体学习(二): AVStream 分析
    Java 使用 int 数据计算百分比
    Android 关于解决MediaButton学习到的media控制流程
  • 原文地址:https://www.cnblogs.com/liujunj/p/13401800.html
Copyright © 2011-2022 走看看