文档章节

Spring Cloud Netflix之Eureka下篇原理

左更庶长
 左更庶长
发布于 2017/03/20 13:51
字数 746
阅读 80
收藏 1

摘要:本文主要介绍Eureka的工作原理,Eureka 组件分为两部分:Eureka server和 Eureka client。而客户端又分为 Application Service 客户端和 Application Client 客户端两种。Eureka 的工作机制每个 region 都有自己的 Eureka 服务器集群,每个 zone 至少要有一个 Eureka 服务器以应对 zone 瘫痪。

概述

名词解释

  1. Renew:我的理解是续约,为什么叫续约呢?
    Renew(服务续约)操作由Service Provider定期调用,类似于heartbeat。目的是隔一段时间Service Provider调用接口,告诉Eureka Server它还活着没挂,不要把它踢掉。通俗的说就是它们两之间的心跳检测,避免服务提供者被剔除掉。
  2. Cancel(服务下线)
    一般在Service Provider挂了shut down的时候调用,用来把自身的服务从Eureka Server中删除,以防客户端调用到不存在的服务。
  3. Fetch Registries(获取注册信息),
    Fetch Registries由Service Consumer(服务消费者)调用,用来获取Eureka Server上注册的服务info。
  4. Eviction(剔除)
    Eviction(失效服务剔除)用来定期在Eureka Server检测失效的服务,检测标准就是超过一定时间没有Renew的服务。

    回顾Eureka架构图

    Eureka架构图

    Eureka架构图如下图所示,github地址:https://github.com/netflix/eureka
    document地址:https://github.com/Netflix/eureka/wiki/Eureka-at-a-glance
    Eureka架构图Eureka架构图
      从图中我们可以看出,Eureka 组件分为两部分:Eureka server和 Eureka client。而客户端又分为 Application Service 客户端和 Application Client 客户端两种。Eureka 的工作机制每个 region 都有自己的 Eureka 服务器集群,每个 zone 至少要有一个 Eureka 服务器以应对 zone 瘫痪。
      Application Service 在启动时注册到 Eureka 服务器,之后每 30 秒钟发送心跳以更新自身状态,即Renew(续约)。如果该客户端没能发送心跳更新,它将在 90 秒之后被其注册的 Eureka 服务器剔除,即Eviction(剔除)。来自任意 zone 的 Application Client 可以获取这些注册信息(每隔 30 秒查看一次)并依此定位到在任何区域可以给自己提供服务的提供者(即Fetch Registries),进而进行远程调用。

    服务提供者本身携带的Eureka Client既能服务注册服务续约,也能通过client定位服务调用其它的服务

服务注册

服务注册

服务注册源码分析,请参考:http://blog.xujin.org/sc/sc-eureka-register/

Renew(服务续约)

服务续约

Renew操作会在Service Provider端定期发起,用来通知Eureka Server自己还活着。 这里有两个比较重要的配置需要注意一下:

 

1

 

eureka.instance.leaseRenewalIntervalInSeconds

 

Renew频率。默认是30秒,也就是每30秒会向Eureka Server发起Renew操作。

 

1

 

eureka.instance.leaseExpirationDurationInSeconds

 

服务失效时间。默认是90秒,也就是如果Eureka Server在90秒内没有接收到来自Service Provider的Renew操作,就会把Service Provider剔除。

本文转载自:http://blog.xujin.org/sc/sc-eureka-mid/

共有 人打赏支持
左更庶长
粉丝 0
博文 28
码字总数 10330
作品 0
杭州
程序员
私信 提问
跟我学Spring Cloud(Finchley版)-05-服务注册与服务发现-Eureka入门

本节讲解基于Eureka的服务发现。 Eureka简介 Eureka是Netflix开源的服务发现组件,本身是一个基于REST的服务,包含Server和Client两部分,Spring Cloud将它集成在子项目Spring Cloud Netfli...

周立_ITMuch
01/03
0
0
Spring Cloud-Eureka Client 原理解析

SpringCloud-Spring Cloud Context SpringCloud-Eureka 服务注册 SpringCloud-Eureka 服务发现 Spring Cloud-Eureka Client 原理解析 SpringCloud-声明式服务调用 Feign SpringCloud-负载均衡......

glmapper
01/11
0
0
自定义spring boot starter三部曲之一:准备工作

版权声明:欢迎转载,请注明出处,谢谢。 https://blog.csdn.net/boling_cavalry/article/details/82956512 从本章开始,一起实战一个自定义的spring boot starter,整个系列共三篇文章,内容...

博陵精骑
2018/10/08
0
0
Spring Cloud Edgware新特性之一:解决Eureka中Jersey 1.x版本过旧的问题-不使用Jersey

Spring Cloud是当前炙手可热的微服务开发框架。它的功能强大,组件丰富,设计优雅。目前Spring Cloud还在不断发展之中。 Spring Cloud即将发布 版本。该版本解决了不少Bug,新增了不少新特性...

周立_ITMuch
2017/10/24
0
0
应用升级SpringCloud版本时的注意事项(Dalston升级到Edgware)

版权声明:欢迎转载,请注明出处,谢谢。 https://blog.csdn.net/boling_cavalry/article/details/82683755 手里有个Spring Cloud的工程,是服务提供者的身份,在pom.xml中配置的Spring Clou...

博陵精骑
2018/09/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

ShxViewer_SHX字体查看

ShxViewe 是一款非常实用的SHX字型浏览软件。从CAD里面的字体浏览软件分离出来,帮助我们预览shx字体。 程序长这个样子: 分别打开txt.shx、hztxt.shx、ltypeshp.shx这几个形文件,可以了解一...

一个小妞
2分钟前
0
0
Jenkins的初步使用

Jenkins真是个宝藏软件,今天大概安装使用了一下,感觉还有好多维度可以探索。 1)安装:在Windows上使用的,在https://jenkins.io/download/下载Windows安装包,解压后是一个msi文件,默认安...

莫在全
14分钟前
0
0
技术复习-分布式事务

一、分布式事务解决方案 1.两阶段提交 two phase commit 角色分为协调者、参与者。协调者负责协调所有的参与者。 第一阶段 prepare 协调者发送prepare请求,参与者锁定资源之后返回ready或者...

Lubby
24分钟前
0
0
jenkins安装

https://my.oschina.net/u/593517/blog/1797968 jenkins 安装 https://my.oschina.net/u/593517/blog/3028175 GIT 安装 https://my.oschina.net/u/593517/blog/3028179 maven 安装 插件安装 ......

Gm_ning
34分钟前
2
0
小言服务端解决方案-监控

框架保证方向,整体包容细节 为保证服务端运行平稳正常,owner应使得系统应保有相应的监控:系统监控,业务监控。而服务运行的平稳高效是否有保障跟监控粒度又成直接的正比关系。本文仅针对开...

重城重楼
45分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部