微服务架构中,服务发现组件是一个非常关键的组件,服务消费者、服务提供者、服务发现组件的关系大致如下:

  • 各个微服务启动时,将自己的网络地址等信息注册到服务发现组件中,服务发现组件会存储这些信息
  • 服务消费者可从服务发现组件查询服务提供者的网络地址,并使用改地址调用服务提供者的接口
  • 各个微服务与服务发现组件使用一定机制(心跳等)通信,服务发现组件长时间无法与某微服务实例通,就会注销该实例。

  下面看看Eureka,它是Netflix(美国著名的在线影片租赁商)开源的服务发现组件,本身是一个基于REST的服务,它包含Server和Client两部分,Spring Cloud将它集成在其子项目spring-cloud-netflix中,以实现Spring Cloud的服务发现功能。

  Eureka的官方文档对regin、zone几乎没有提及,由于概念抽象,新手很难理解。因此,在分析Eureka原理之前,我们先来了解一下region、zone、Eureka集群三者的关系,如图:

region和zone(或者Availability Zone)均是AWS的概念。在非AWS环境下,我们可以简单地将region理解为Eureka集群,zone理解成机房。这样上图就很好理解了——一个Eureka集群被部署在了zone1机房和zone2机房中。对region和zone感兴趣的读者可前往http://blog.csdn.net/awschina/article/details/17639191 扩展阅读。Spring Cloud中默认的region是us-east-1 。Eureka的架构如下图所示:

eureka架构图

上图是来自Eureka官方的架构图,大致描述了Eureka集群的工作过程。图中包含的组件非常多,可能比较难以理解,我们用通俗易懂的语言解释一下:

  • Application Service 相当于本书中的服务提供者,Application Client相当于本书中的服务消费者;
  • Make Remote Call,可以简单理解为调用RESTful API;
  • us-east-1c、us-east-1d等都是zone,它们都属于us-east-1这个region;

由图可知,Eureka包含两个组件:Eureka Server 和 Eureka Client,它们的作用如下:

  • Eureka Client是一个Java客户端,用于简化与Eureka Server的交互;
  • Eureka Server提供服务发现的能力,各个微服务启动时,会通过Eureka Client向Eureka Server进行注册自己的信息(例如网络信息),Eureka Server会存储该服务的信息;
  • 微服务启动后,会周期性地向Eureka Server发送心跳(默认周期为30秒)以续约自己的信息。如果Eureka Server在一定时间内没有接收到某个微服务节点的心跳,Eureka Server将会注销该微服务节点(默认90秒);
  • 每个Eureka Server同时也是Eureka Client,多个Eureka Server之间通过复制的方式完成服务注册表的同步;
  • Eureka Client会缓存Eureka Server中的信息。即使所有的Eureka Server节点都宕掉,服务消费者依然可以使用缓存中的信息找到服务提供者。

综上,Eureka通过心跳检测、健康检查和客户端缓存等机制,提高了系统的灵活性、可伸缩性和可用性。

转载于:https://www.cnblogs.com/loveBolin/p/9901788.html

springcloud服务注册和发现相关推荐

  1. SpringCloud服务注册与发现

    1.介绍 对于微服务的治理而言,其核心就是服务的注册和发现.在SpringCloud 中提供了多种服务注册与发现组件:Eureka,Consul,Zookeeper.官方推荐使用Eureka. 说明: ...

  2. SpringCloud服务注册与发现Eureka

    Eureka是Spring Cloud Netflix微服务套件中的一部分,可以与Springboot构建的微服务很容易的整合起来. Eureka包含了服务器端和客户端组件.服务器端,也被称作是服务注 ...

  3. SpringCloud学习笔记:服务注册与发现Eureka(2)

    1. Eureka简介 Eureka是一个用于服务注册和发现的组件,分为Eureka Server和Eureka Client,Eureka Server为Eureka服务注册中心,Eureka Cl ...

  4. 第一篇:SpringCloud 构建微服务系统之服务注册和发现(consul)

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u010046908/article/details/85260629 今天我们要学习的是consul ...

  5. SpringCloud(二) 服务注册与发现Eureka

    1.eureka是干什么的? 上篇说了,微服务之间需要互相之间通信,那么通信就需要各种网络信息,我们可以通过使用硬编码的方式来进行通信,但是这种方式显然不合适,不可能说一个微服务的地址发生变动,那么整 ...

  6. SpringCloud微服务:Eureka组件之服务注册与发现

    一.Eureka基本架构 1.Eureka角色结构图 角色职责如下: 1).Register:服务注册中心,它是一个Eureka Server ,提供服务注册和发现功能. 2).Provider:服务 ...

  7. springcloud微服务系列之服务注册与发现组件Eureka

    一.Eurake的简介 二.使用Eureka进行服务的注册消费 1.创建一个服务注册中心 2.创建服务的提供者 3.创建服务的消费者 总结 一.Eurake的简介 今天我们来介绍下springclou ...

  8. SpringCloud - 2. 服务注册 和 发现

    SpringCloud 的服务注册和发现是由Eureka来完成. 1.eureka server 1.1 依赖 <dependency><groupId>org.springf ...

  9. 白话SpringCloud | 第三章:服务注册与发现-高可用配置(Eureka)-下

    2019独角兽企业重金招聘Python工程师标准>>> 前言 上一章节,讲解了在单机模式下的服务注册与发现的相关知识点及简单示例.而在实际生产或者在这种微服务架构的分布式环境中,需要 ...

最新文章

  1. System.Data.OleDb.OleDbException: INSERT INTO 语句的语法错误
  2. 11. sql DDL
  3. linux系统支持u盘格式,linux下U盘格式化
  4. diff算法_[VUE学习]徒手撸一个虚拟dom+diff算法
  5. sql 单表/多表查询去除重复记录
  6. 概率论 —— 分析计算机系统和网络的可靠性和通用性
  7. js中map和python中的map
  8. Atiitt 兼容性提升的艺术 attilax总结 目录 1. 兼容性产生的原因 2 1.1. Api变化 2 1.2. 需求的资源不满足 2 2. 兼容性的分类 2 2.1. Web方面的兼容性
  9. linux下运行hadoop,Linux命令行下运行Hadoop单元测试
  10. 电脑重装系统虚拟机安装xp的教程
  11. 【嵌入式】基于SPI的M8266WIFI模块调试
  12. php 自己画地图,绘制自己的独家地图
  13. TPshop学习(1)Windows下安装TPshop
  14. 前端JavaScript-面向对象
  15. php mysql echarts动态生成图表
  16. vcg函数值_几个经典的数学库之一学习---VCGlib(2)
  17. 使用html+css+js实现一个静态页面(含源码)
  18. 输入圆半径,求圆面积并保留两位小数
  19. 一键下载网页所有图片(含dataurl格式图片)
  20. 如何衡量算法的优劣??

热门文章

  1. docker初识_初识 docker 搭建自己的开发环境
  2. 框架下载_25. Scrapy 框架-下载中间件Middleware
  3. linux添加windows网络打印机,Linux Mint如何添加windows分享的网络打印机?
  4. alientek ministm32液晶显示程序_佳显12864中文字库液晶专业生产液晶显示模块
  5. 自适应 幻灯片代码 app_字节跳动 To B 再添一员,将推出飞书文档独立App | 36氪独家...
  6. rust如何改睡袋_腐蚀rust怎么做睡袋 | 手游网游页游攻略大全
  7. linux 连接wifi不稳定,rtl8188ce 无线网不稳定终极解决方案 - 哆啦比猫的技术瞎扯 - Arch Linux · ドラえもん · 实时绘制...
  8. [渝粤教育] 郑州大学 互联网国际政治学 参考 资料
  9. 【渝粤教育】 国家开放大学2020年春季 2716动物营养基础 参考试题
  10. [渝粤教育] 中国地质大学 数据结构 复习题 (2)