Eureka的功能特性及相关配置
1.服务提供者
1.1服务注册
服务提供者启动时,会通过rest请求的方式将自己注册到Eureka Server上,同时带上了自身服务的一些元数据信息。Eureka Server接收到请求后,将元数据信息存储在一个双层结构的Map中,其中与第一层的key是服务名,第二层的key是具体的服务实例名
eureka.client.register-with-eureka=false 是否向注册中心注册自己 默认 true
eureka.client.fetch-registry=false 是否去检索注册中心的服务 默认 true
1.2服务续约
在注册完服务后,服务提供者会维护一个心跳用来持续高速Eureka Server“我还活着”,以防止Eureka Server的“剔除任务”将该服务实例从服务列表中排除出去
eureka.instance.lease-renewal-interval-in-seconds=30 定义服务续约任务的调用间隔时间 默认30s
eureka.instance.lease-expiration-duration-in-seconds=90 定义服务失效的时间 默认90s
1.3服务下线
当服务实例进行正常的关闭操作时,会触发一个服务下线的rest请求给Eureka Server ,告诉注册中心:”我要下线了“,服务端在接收请求后,将该服务置为下线(DOWN),并把下线时间传播出去(通知服务消费者)
2.服务消费者
2.1获取服务
eureka.client.fetch-registry=ture 是否检索注册中心的服务,获取服务则必须设置为true 默认为true
eureka.client.registry.fetch.interval.seconds=30 当启动服务消费者时,会发送一个rest请求给注册中心,来获取上面注册的服务清单;为了性能考虑,Eureka Server会维护一份只读的服务清单来返回给客户端,同时缓存清单会每隔30秒更新一次
2.2服务调用
服务消费者获取服务清单后,通过服务名可以获取具体提供服务的实例名和该实例的元数据信息。有了这些元数据信息,客户端可以根据自己的需要决定具体调用哪个实例。对于访问实例的选择,Eureka中有Region和Zone两个概念,一个Region中可以包含多个Zone,每个服务客户端需要被注册到一个Zone钟,所以每个客户端对应一个Region和一个Zone。在进行服务调用时,优先访问同处一个Zone的服务提供方,若访问不到,再访问其他Zone的服务提供者。
3.服务注册中心
3.1服务同步
当两个服务提供者注册到注册中心集群,它们的信息被注册中心集群维护(此时注册中心之间互相注册为服务)当服务提供者发送服务注册请求到一个注册中心时,他会将该请求转发给集群中相连的其他注册中心,从而实现注册中心的服务同步。通过服务同步,两个服务提供者的服务信息就可以通过这两台服务注册中心的任意一台获取到。
3.2失效剔除
有时,服务实例并不一定是正常下线,可能由于内存溢出,网络故障等原因使得服务不能正常工作,而服务注册中心并未收到“服务下线”的请求。为了从服务列表中将这些无法提供服务的实例剔除,Eureka Server在启动时会创建一个定时任务,默认每隔一段时间(默认60s)将当前清单中超时(默认90s)没有续约的服务剔除
3.3自我保护
服务注册到注册中心后,会维护一个心跳连接,告诉Eureka Server自己还活着。Eureka Server 在运行期间会统计心跳失败比例在15分钟内是是否低于85%,如果出现低于的情况(单机调试很容易满足,实际在生产环境中通常是由于网络不稳定导致的),会将当前的实例注册信息保护起来,让这些实例不过期,尽可能保护注册信息。而在这段保护期间内,实例若出现问题,那么客户端会拿到实际已经不存在的服务实例,会出现调用失败的情况,这时客户端就必须要有容错机制,比如请求重试,熔断器等
注:在单机调试时,服务注册中心信息面板经常会出现如下提示:
这就是由于触发了Eureka Server的自我保护机制
可以使用eureka.server.enable-self-preservation=false参数来关闭保护机制
Eureka的功能特性及相关配置的更多相关文章
- JAVA Spring Cloud 注册中心 Eureka 相关配置
转载至 https://www.cnblogs.com/fangfuhai/p/7070325.html Eureka客户端配置 1.RegistryFetchIntervalSecon ...
- SpringCloudConfig相关配置简介、使用、整合Eureka
目的: 1.SpringCloud Config简介 2.Config Server基本使用 3.Config Client基本使用 4.Config整合Eureka 5.Config配置搜索路径 S ...
- SpringCloud系列六:Feign接口转换调用服务(Feign 基本使用、Feign 相关配置)
1.概念:Feign 接口服务 2.具体内容 现在为止所进行的所有的 Rest 服务调用实际上都会出现一个非常尴尬的局面,例如:以如下代码为例: Dept dept = this.restTempla ...
- eureka集群基于DNS配置方式
https://www.cnblogs.com/relinson/p/eureka_ha_use_dns.html 最近在研究spring cloud eureka集群配置的时候碰到问题:多台eu ...
- SpringCloud Eureka Client和Server侧配置及Eureka高可用配置
一.Eureka注册中心和客户端配置Demo. 1.Server端 a.使用Idea创建Spring项目,如下所示: b.相关配置 application.yaml配置文件如下: # eureka本身 ...
- zookeeper集群的搭建以及hadoop ha的相关配置
1.环境 centos7 hadoop2.6.5 zookeeper3.4.9 jdk1.8 master作为active主机,data1作为standby备用机,三台机器均作为数据节点,yarn资源 ...
- Linux网络相关配置
一.修改网卡相关配置 Linux网络参数是在/etc/sysconfig/network-scripts/ifcfg-eth0中设置,其中ifcfg-eth0表示是第一个网卡,如果还有另外一块网卡,则 ...
- ios开发之Info.plist文件相关配置
前言:在iOS开发中有些情况下需要对Info.plist文件进行配置,以下介绍几种相关配置.以后遇到需要配置的再更新... 开发环境:swift3.0.1,Xcode8.1 一,项目中需要使用第三方字 ...
- SharePoint 2013 托管导航及相关配置 <二>
本文的思路是使用JQuery重写SharePoint自带托管导航的样式,其实思路和脚本都非常简单,引用一下JQuery脚本,然后重写导航的样式,把脚本放到母版页中,即可.当然,使用JQuery可以做很 ...
随机推荐
- 技术人应该学习的行话--UML统一建模语言
新生代码农如何在硝烟弥漫的商业丛林中生存和崛起? 洞见,让一部分先遇见未来. 最近公司技术部在组织架构师培训,有幸参与.导师老刘特别推荐了UML语言的学习.回想多年来,自己习惯做一些流程图,框图或者所 ...
- Nginx 怎么给一台服务器,配置两个域名?详细的解说+截图教程
一. 环境.条件准备 一台云服务器(我的是腾讯的centos7) 至少两个域名.(我的是simuhunluo.xyz和simuhunluo.top.这两个域名之间没有任何关系,我是在阿里 ...
- ScalaPB(2): 在scala中用gRPC实现微服务
gRPC是google开源提供的一个RPC软件框架,它的特点是极大简化了传统RPC的开发流程和代码量,使用户可以免除许多陷阱并聚焦于实际应用逻辑中.作为一种google的最新RPC解决方案,gRPC具 ...
- break-跳出内循环
i = 1 j = 1 while i <= 10: print('第%d个碗' % i) while j <= 10: if j == 5: break else: print('这是内 ...
- 5月2日——iOS11定位失效问题
所存在的问题: (1)定位不能正常使用 (2)首次安装APP 时 "是否允许使用定位信息" 系统提示框不显示 iOS定位失效原因: 因为苹果现在增加了一项新的隐私保护功能 NSL ...
- Quartz学习--二 Hello Quartz! 和源码分析
Quartz学习--二 Hello Quartz! 和源码分析 三. Hello Quartz! 我会跟着 第一章 6.2 的图来 进行同步代码编写 简单入门示例: 创建一个新的java普通工程 ...
- LogicalDOC office预览中文乱码的问题
近期在试用LogicalDOC,一个文档管理系统. 上传的office文件预览中文乱码 问题原因是LibreOffice缺少对应的中文字体导致,只需要把对应的中文字体拷贝到/opt/libreoffi ...
- ndarray数据类型
dtype(数据类型)是一个特殊的对象,它含有ndarray将一块内存解释为特定数据类型所需的信息 In [18]: sim1 = np.array([1,2,3],dtype=np.float64) ...
- POI处理Excel中各种日期格式问题
前不久写过一篇随笔<EXCEL解析之终极方法WorkbookFactory>,提到使用WorkbookFactory来处理Excel文件数据,最近发现一个问题就是这个办法不能很好的处理各种 ...
- j2ee中spring的分布式事务实现及解决方案
1 java事务类型 Java事务的类型有三种:JDBC事务.JTA(Java Transaction API)事务.容器事务. 常见的容器事务如Spring事务,容器事务主要是J2EE应用服务器提供 ...