标签:续约 服务 spring Eureka 注册 注册表 cloud 客户端
Eureka简介
Eureka是基于REST(代表性状态转移)的服务,主要在AWS云中用于定位服务,以实现负载均衡和中间层服务器的故障转移。我们称此服务为Eureka服务器。Eureka还带有一个基于Java的客户端组件Eureka Client,它使与服务的交互变得更加容易。客户端还具有一个内置的负载平衡器,可以执行基本的循环负载平衡。在Netflix,更复杂的负载均衡器将Eureka包装起来,以基于流量,资源使用,错误条件等多种因素提供加权负载均衡,以提供出色的弹性。、
Eureka的概念
-
服务注册 Register:当
Eureka
客户端向Eureka Server
注册时,它提供自身的元数据,比如IP地址、端口,运行状况指示符URL,主页等。 -
服务续约 Renew:
Eureka
客户会每隔30秒(默认情况下)发送一次心跳来续约。 通过续约来告知Eureka Server
该Eureka
客户仍然存在,没有出现问题。 正常情况下,如果Eureka Server
在90秒没有收到Eureka
客户的续约,它会将实例从其注册表中删除。 -
获取注册列表信息 Fetch Registries:
Eureka
客户端从服务器获取注册表信息,并将其缓存在本地。客户端会使用该信息查找其他服务,从而进行远程调用。该注册列表信息定期(每30秒钟)更新一次。每次返回注册列表信息可能与Eureka
客户端的缓存信息不同,Eureka
客户端自动处理。如果由于某种原因导致注册列表信息不能及时匹配,Eureka
客户端则会重新获取整个注册表信息。Eureka
服务器缓存注册列表信息,整个注册表以及每个应用程序的信息进行了压缩,压缩内容和没有压缩的内容完全相同。Eureka
客户端和Eureka
服务器可以使用JSON / XML格式进行通讯。在默认的情况下Eureka
客户端使用压缩JSON
格式来获取注册列表的信息。 -
服务下线 Cancel:Eureka客户端在程序关闭时向Eureka服务器发送取消请求。 发送请求后,该客户端实例信息将从服务器的实例注册表中删除。该下线请求不会自动完成,它需要调用以下内容:
DiscoveryManager.getInstance().shutdownComponent();
-
服务剔除 Eviction: 在默认的情况下,当Eureka客户端连续90秒(3个续约周期)没有向Eureka服务器发送服务续约,即心跳,Eureka服务器会将该服务实例从服务注册列表删除,即服务剔除。
Eureka常用配置
spring boot启动类上 @EnableEurekaServer
注解开启 Eureka 服务
服务端配置
eureka: instance: hostname: xxxxx # 主机名称 prefer-ip-address: true/false # 注册时显示ip server: enableSelfPreservation: true # 启动自我保护 renewalPercentThreshold: 0.85 # 续约配置百分比
客户端配置
eureka: client: register-with-eureka: true/false # 是否向注册中心注册自己 fetch-registry: # 指定此客户端是否能获取eureka注册信息 service-url: # 暴露服务中心地址 defaultZone: http://xxxxxx # 默认配置 instance: instance-id: xxxxx # 指定当前客户端在注册中心的名称
标签:续约,服务,spring,Eureka,注册,注册表,cloud,客户端 来源: https://www.cnblogs.com/21-Gram/p/12575913.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。