springcloud服务注册和发现
微服务架构中,服务发现组件是一个非常关键的组件,服务消费者、服务提供者、服务发现组件的关系大致如下:
- 各个微服务启动时,将自己的网络地址等信息注册到服务发现组件中,服务发现组件会存储这些信息
- 服务消费者可从服务发现组件查询服务提供者的网络地址,并使用改地址调用服务提供者的接口
- 各个微服务与服务发现组件使用一定机制(心跳等)通信,服务发现组件长时间无法与某微服务实例通,就会注销该实例。
下面看看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服务注册和发现相关推荐
- SpringCloud服务注册与发现
1.介绍 对于微服务的治理而言,其核心就是服务的注册和发现.在SpringCloud 中提供了多种服务注册与发现组件:Eureka,Consul,Zookeeper.官方推荐使用Eureka. 说明: ...
- SpringCloud服务注册与发现Eureka
Eureka是Spring Cloud Netflix微服务套件中的一部分,可以与Springboot构建的微服务很容易的整合起来. Eureka包含了服务器端和客户端组件.服务器端,也被称作是服务注 ...
- SpringCloud学习笔记:服务注册与发现Eureka(2)
1. Eureka简介 Eureka是一个用于服务注册和发现的组件,分为Eureka Server和Eureka Client,Eureka Server为Eureka服务注册中心,Eureka Cl ...
- 第一篇:SpringCloud 构建微服务系统之服务注册和发现(consul)
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u010046908/article/details/85260629 今天我们要学习的是consul ...
- SpringCloud(二) 服务注册与发现Eureka
1.eureka是干什么的? 上篇说了,微服务之间需要互相之间通信,那么通信就需要各种网络信息,我们可以通过使用硬编码的方式来进行通信,但是这种方式显然不合适,不可能说一个微服务的地址发生变动,那么整 ...
- SpringCloud微服务:Eureka组件之服务注册与发现
一.Eureka基本架构 1.Eureka角色结构图 角色职责如下: 1).Register:服务注册中心,它是一个Eureka Server ,提供服务注册和发现功能. 2).Provider:服务 ...
- springcloud微服务系列之服务注册与发现组件Eureka
一.Eurake的简介 二.使用Eureka进行服务的注册消费 1.创建一个服务注册中心 2.创建服务的提供者 3.创建服务的消费者 总结 一.Eurake的简介 今天我们来介绍下springclou ...
- SpringCloud - 2. 服务注册 和 发现
SpringCloud 的服务注册和发现是由Eureka来完成. 1.eureka server 1.1 依赖 <dependency><groupId>org.springf ...
- 白话SpringCloud | 第三章:服务注册与发现-高可用配置(Eureka)-下
2019独角兽企业重金招聘Python工程师标准>>> 前言 上一章节,讲解了在单机模式下的服务注册与发现的相关知识点及简单示例.而在实际生产或者在这种微服务架构的分布式环境中,需要 ...
最新文章
- System.Data.OleDb.OleDbException: INSERT INTO 语句的语法错误
- 11. sql DDL
- linux系统支持u盘格式,linux下U盘格式化
- diff算法_[VUE学习]徒手撸一个虚拟dom+diff算法
- sql 单表/多表查询去除重复记录
- 概率论 —— 分析计算机系统和网络的可靠性和通用性
- js中map和python中的map
- Atiitt 兼容性提升的艺术 attilax总结 目录 1. 兼容性产生的原因	2 1.1. Api变化	2 1.2. 需求的资源不满足	2 2. 兼容性的分类	2 2.1. Web方面的兼容性
- linux下运行hadoop,Linux命令行下运行Hadoop单元测试
- 电脑重装系统虚拟机安装xp的教程
- 【嵌入式】基于SPI的M8266WIFI模块调试
- php 自己画地图,绘制自己的独家地图
- TPshop学习(1)Windows下安装TPshop
- 前端JavaScript-面向对象
- php mysql echarts动态生成图表
- vcg函数值_几个经典的数学库之一学习---VCGlib(2)
- 使用html+css+js实现一个静态页面(含源码)
- 输入圆半径,求圆面积并保留两位小数
- 一键下载网页所有图片(含dataurl格式图片)
- 如何衡量算法的优劣??
热门文章
- docker初识_初识 docker 搭建自己的开发环境
- 框架下载_25. Scrapy 框架-下载中间件Middleware
- linux添加windows网络打印机,Linux Mint如何添加windows分享的网络打印机?
- alientek ministm32液晶显示程序_佳显12864中文字库液晶专业生产液晶显示模块
- 自适应 幻灯片代码 app_字节跳动 To B 再添一员,将推出飞书文档独立App | 36氪独家...
- rust如何改睡袋_腐蚀rust怎么做睡袋 | 手游网游页游攻略大全
- linux 连接wifi不稳定,rtl8188ce 无线网不稳定终极解决方案 - 哆啦比猫的技术瞎扯 - Arch Linux · ドラえもん · 实时绘制...
- [渝粤教育] 郑州大学 互联网国际政治学 参考 资料
- 【渝粤教育】 国家开放大学2020年春季 2716动物营养基础 参考试题
- [渝粤教育] 中国地质大学 数据结构 复习题 (2)