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认为各个节点都是平等的,几个节点挂掉不会影响正常节点的工作,剩余的节点依然可以提供注册和查询服务。

Eureka系列(一)Eureka功能介绍的更多相关文章

  1. Eureka系列(九)Eureka自我保护机制

      因为本篇简文并不是自己总结的,而是当了下搬运工,所以直接直接附上原作者博客链接. 参考链接:   1.SpringCloud Eureka自我保护机制   2.Spring Cloud Eurek ...

  2. Spring Cloud 系列之 Eureka 实现服务注册与发现

    如果你对 Spring Cloud 体系还不是很了解,可以先读一下 Spring Cloud 都有哪些模块 Eureka 是 Netflix 开源的服务注册发现组件,服务发现可以说是微服务架构的核心功 ...

  3. Eureka 系列(05)消息广播(上):消息广播原理分析

    Eureka 系列(05)消息广播(上):消息广播原理分析 [TOC] 0. Spring Cloud 系列目录 - Eureka 篇 首先回顾一下客户端服务发现的流程,在上一篇 Eureka 系列( ...

  4. Eureka 系列(08)心跳续约与自动过期

    Eureka 系列(08)心跳续约与自动过期 [TOC] Spring Cloud 系列目录 - Eureka 篇 在上一篇 Eureka 系列(07)服务注册与主动下线 中对服务的注册与下线进行了分 ...

  5. Eureka 系列(07)服务注册与主动下线

    Eureka 系列(07)服务注册与主动下线 [TOC] Spring Cloud 系列目录 - Eureka 篇 在上一篇 Eureka 系列(05)消息广播 中对 Eureka 消息广播的源码进行 ...

  6. Eureka 系列(06)消息广播(下):TaskDispacher 之 Acceptor - Worker 模式

    Eureka 系列(06)消息广播(下):TaskDispacher 之 Acceptor - Worker 模式 [TOC] Spring Cloud 系列目录 - Eureka 篇 Eureka ...

  7. Eureka 系列(04)客户端源码分析

    Eureka 系列(04)客户端源码分析 [TOC] 0. Spring Cloud 系列目录 - Eureka 篇 在上一篇 Eureka 系列(01)最简使用姿态 中对 Eureka 的简单用法做 ...

  8. SpringCloud系列使用Eureka进行服务治理

    1. 什么是微服务? "微服务"一词来自国外的一篇博文,网站:https://martinfowler.com/articles/microservices.html 如果您不能看 ...

  9. Eureka详解系列(四)--Eureka Client部分的源码和配置

    简介 按照原定的计划,我将分三个部分来分析 Eureka 的源码: Eureka 的配置体系(已经写完,见Eureka详解系列(三)--探索Eureka强大的配置体系): Eureka Client ...

随机推荐

  1. 使用Camtasia来给视频或者图片调色

    喜欢摄影和制作视频的朋友可能知道,一张好看的照片或一段精美视频的构成要素很多,取景本身就是很重要的条件,相机的硬件水平也是一个重要因素,接下来的就是后期的编辑和处理了,而在后期处理过程中调色是十分重要 ...

  2. 1、Go语言介绍

    一 Go语言介绍 Go 即Golang,是Google公司2009年11月正式对外公开的一门编程语言. Go是静态强类型语言,是区别于解析型语言的编译型语言. 解析型语言--源代码是先翻译为中间代码, ...

  3. Django踩坑记录1

    from django.db import models # Create your models here. class Event(models.Model): name = models.Cha ...

  4. 【ACwing 95】费解的开关——枚举 + 搜索

    (题面来自ACwing) 你玩过"拉灯"游戏吗?25盏灯排成一个5x5的方形.每一个灯都有一个开关,游戏者可以改变它的状态.每一步,游戏者可以改变某一个灯的状态.游戏者改变一个灯的 ...

  5. 经历与感想丨第15届CSUST-ACM程序大赛

    这算是我的第一次较正式的\(ACM\)团队比赛吧,真的感谢@dj.@qc两位大佬. 开局就选了最后一题(因为哈希是他们集训队的猫),但三人无啥思路,于是溜回A题(发现有不少人已经过了).dj很快进入状 ...

  6. Java基础教程——异常处理详解

    异常处理 好程序的特性 可重用性 可维护性 可扩展性 鲁棒性 |--|--Robust的音译 |--|--健壮.强壮之意 |--|--指在异常和危险情况下系统依然能运行,不崩溃 Java中,写下如下代 ...

  7. 【mq学习整理】mq速览

  8. 【鸿蒙应用开发】第三章 “颜控”时代下如何构建UI界面

    为什么是第三章,前面两章呢? 原本是以碎片化的方式将HarmonyOS应用开发快速掌握,但是在准备六大布局组合复杂UI界面Demo时,很多组件之前都没有应用.因此准备将知识体系进行细化,以章节的形式希 ...

  9. TensorFlow安装方法:附带坑解决办法

    >>添加Anaconda 仓库的镜像 Anaconda 安装包可以到 https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/ 下载. ...

  10. 课堂笔记【java JDBC】

    目录 JDBC简介 工作原理: 工作过程: JDBC驱动与连接 JDBC驱动 连接JDBC驱动 1.下载特定数据库的JDBCjar包 2.加载并注册数据库驱动 3.连接驱动 JDBC常见API JDB ...