SpringCloud的服务注册中心(三) - 进一步了解 Eureka
一、服务治理参与者
- 服务注册中心: eureka-server
- 服务提供者:HELLO-SERVICE
- 服务消费者 :HELLO-CONSUMER
很多时候,客户端既是服务提供者又是服务消费者,-》@EnableDiscoveryClient。
服务提供者和服务消费者都是Eureka的客户端,是大部分通信行为的主动发起者。
二、各参与者之间的交互模式

Application-Service --(注册、续约、下线)--》Eureka-Server
Application-Service --(获取registry)--》Eureka-Server
Application-Client --(获取registry)----》Eureka - Server
Application-Client --(本地负载均衡下的远程调用)----》Application - Service
Eureka-Server1 --(复制) --》 Eureka-Server2 --(复制) --》 Eureka-Server3 --(复制) --》 Eureka-ServerN
三、流程描述
1、服务提供者
1.1、服务注册
服务提供者 启动时发送rest请求注册自己到EurekaServer,注册自己的一些元数据。
EurekaServer接收注册内容,放到双层map,第一层的key是服务名,第二层的key是具体服务实例名。
服务提供者:
eureka.client.register-with-eureka=true,默认值为true。否则将不会启动注册操作。
EurekaServer:
1.2、服务同步 - regist
服务注册中心之间因为互相注册为服务。所以,当服务提供者发送注册请求到一个服务注册中心时,它会将请求转发给集群中相连的其他注册中心,从而实现注册中心之间的服务同步。
1.3、服务续约 - renew
注册完服务之后,服务提供者会维持一个心跳用来告诉EurekaServer:我还在,防止EurekaServer的剔除任务将该服务实例从服务列表中排除出去!
2、服务消费者
2.1、获取服务
启动服务消费者时,服务消费者会发送一个请求给 服务注册中心,来获取上面注册的服务清单。
服务注册中心会每隔30秒更新一次服务缓存清单。
2.2、服务调用
服务消费者获得服务清单后,通过服务名可以获得具体提供服务的实例名和实例元数据信息,可以根据需要决定调用哪个实例。
ribbon中默认采用轮询方式进行调用,从而实现客户端的负载均衡。
2.3、服务下线
服务实例关闭,会触发一个服务下线的rest请求给EurekaServer,告诉服务器,我要下线了!
服务端收到下线请求,将该服务实例状态设置为下线,并传播该下线事件。
3、服务注册中心
3.1、失效剔除
服务实例非正常下线,如:内存溢出、网络断开等原因导致服务实例无法正常工作时,服务注册中心无法按期收到“服务下线“消息请求。
EurekaServer会有一个定时任务,默认每隔一段时间(60秒)从当前清单中剔除没有续约(默认90秒)的服务实例。
3.2、自我保护
EurekaServer统计心跳失败比例,如果15分钟内低于85%,则触发自我保护机制:保存当前实例信息,让这些实例不会过期。
三、其他概念
针对区域性故障的容错集群
一个region 对应多个 zone
微服务应用中使用ribbon调用服务时,会优先访问同客户端处于一个zone的服务实例,只有当同一个zone中没有可用的服务实例时才会访问其他zone中的实例。
SpringCloud的服务注册中心(三) - 进一步了解 Eureka的更多相关文章
- springcloud搭建服务注册中心与服务发现
1.创建服务注册中心 创建一个普通的Spring Boot工程 首先我们需要创建一个普通的Spring Boot工程,命名为eureka-server,普通到什么程度呢?就是一个starter都不需要 ...
- SpringCloud + Consul服务注册中心 + gateway网关
1 启动Consul 2 创建springcloud-consul项目及三个子模块 2.1 数据模块consul-producer 2.2 数据消费模块consul-consumer 2.3 ga ...
- SpringCloud之服务注册中心
1.Eureka 1.1RestTemplate 它提供了多种访问远程http服务的方法,是一种简单便捷的访问restful服务模板类,是spring提供的用于访问Rest服务的客户端模板工具集. 1 ...
- SpringCloud的服务注册中心(四)- 高可用服务注册中心的搭建
一.双 服务注册注册中心 1.服务注册中心的服务端 - EurekaServer 1.1.EurekaServer1 String.application.name=eureka-server ser ...
- SpringCloud的服务注册中心(一)
一.概念和定义 1.服务治理:服务注册与服务发现 服务注册中心,提供服务治理功能,用来实现各个微服务实例的自动注册与发现. 服务注册与发现对于微服务系统来说非常重要.有了服务发现与注册,维护人员就不需 ...
- springcloud 笔记-服务注册中心
1.搭建springcloud服务注册中心需要添加eureka的依赖: <?xml version="1.0" encoding="UTF-8"?> ...
- SpringCloud(四):服务注册中心Eureka Eureka高可用集群搭建 Eureka自我保护机制
第四章:服务注册中心 Eureka 4-1. Eureka 注册中心高可用集群概述在微服务架构的这种分布式系统中,我们要充分考虑各个微服务组件的高可用性 问题,不能有单点故障,由于注册中心 eurek ...
- SpringCloud的服务注册中心(二)注册中心服务端和两个微服务应用客户端
一.构建EurekaServer工程 1.pom.xml 2.application.yml 3. EurekaServerApp.java 4.启动EurekaServer 二.构建部署 Eurek ...
- spring cloud 入门系列三:使用Eureka 搭建高可用服务注册中心
在上一篇中分享了如何使用Eureka 进行服务治理,里面搭建的服务注册中心是单体的, 但是在实际的应用中,分布式系统为了防止单体服务宕机带来严重后果,一般都会采用服务器集群的形式,服务注册中心也是一样 ...
随机推荐
- Lastpass——密码管理工具
Lastpass是一个优秀的在线密码管理器和页面过滤器,采用了强大的加密算法,自动登录/云同步/跨平台/支持多款浏览器. 我之前一直都在使用这个工具,不过都是在浏览器上以扩展的方式使用,在火狐浏览器上 ...
- spring boot rest例子
简介: 本文将帮助您使用 Spring Boot 创建简单的 REST 服务. 你将学习 什么是 REST 服务? 如何使用 Spring Initializr 引导创建 Rest 服务应用程序? 如 ...
- 敏感词过滤,js封装class选择器:
敏感词过滤: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UT ...
- Asp.Net Core 2.0 项目实战(10) 基于cookie登录授权认证并实现前台会员、后台管理员同时登录
1.登录的实现 登录功能实现起来有哪些常用的方式,大家首先想到的肯定是cookie或session或cookie+session,当然还有其他模式,今天主要探讨一下在Asp.net core 2.0下 ...
- git将文件托管到github上遇到的问题
先来一问题描述: 执行:$ git push -u origin master 结果Warning: Permanently added the RSA host key for IP address ...
- 零散Linux命令
1. # ps -ef|grep java 查询java进程 2. # kill -9 进程号 关闭指定进程
- 使用git将本地代码传到github
方法可能有些小小的差别,但是最终的结果都是一样的 在github上新建代码仓库 确定之后会显示一个仓库的url,复制下来 在本地找一个作为本地仓库的文件夹右键Git Bash Here打开git 把g ...
- MYSQL数据库学习十五 事务
15.1 事务概述 当多个用户访问同一份数据,一个用户在更改数据的过程中可能有其他用户同时发起更改请求,为保证数据库记录的更新从一个一致性状态变为另一个一致性状态,使用事务处理是非常必要的. 事务有以 ...
- 云服务器Windows Server2012 配置http服务器(又称Web服务器,IIS)
出错:无法打开运行空间池.服务器管理器WinRM插件可能已损坏或丢失. 解决方法: http://shiyousan.com/post/636308065767125916 第一步是开启WinRM服务 ...
- 如何防止cookie被串改
在这里我不想多说怎么去操作cookie了,网上博文一大堆,大家可以去自行搜索,在这里也是记录一下自己的知识,以便以后方便查阅.当我们在浏览器地址栏输入地址成功打开网页以后,服务器会把一些信息写入coo ...