前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >(二)Spring Cloud: Eureka服务交互

(二)Spring Cloud: Eureka服务交互

作者头像
关忆北.
发布2021-12-07 16:14:27
2550
发布2021-12-07 16:14:27
举报
文章被收录于专栏:关忆北.关忆北.

(二)Eureka服务交互

Eureka Server

提供的功能

  1. 服务注册,所有的服务都注册到Eureka Server上面来
  2. 提供服务注册表,注册表就是所有注册上来服务的一个列表,Eureka Client在调用服务时,需要获取这个注册表,一般来说这个注册表会缓存下来,如果缓存失效,则直接获取最新的注册表
  3. 同步状态,Eureka Client通过注册、心跳等机制,和Eureka Server同步当前客户端的状态
Eureka Client

Eureka Client主要是用来简化每一个服务和Eureka Server之间的交互,Eureka Client会自动拉取、更新以及缓存Eureka Server中的信息,这样,即使Eureka Server所有节点都宕机,Eureka Client依然能够获取到想要调用的服务地址(地址可能不准确)。

服务注册

服务提供者(生产者)将自己注册到注册中心(Eureka Server),生产者与消费者的划分,只是根据业务功能的不同来进行定义,两者并不存在技术分类上的不同,所以两者均为Eureka Client,Client向Server注册时,需要向Server提供自身的IP、端口、名称、运行状态等。

所谓的业务划分生产者与消费者,实则是根据模块的功能类型不同来对服务定义生产/消费者,举个例子,A服务要调用B服务的接口,那么B就是生产者,A就是消费者,这两者都是Client。假如在多个模块中,有一个模块中专门负责与数据库交互、持久化,那么别的服务需要持久化时,就需要调用此模块,那么该模块就算是一个生产者。

服务续约

Eureka Client注册完成后,Client默认每30S向Server发送心跳消息来告诉Server自身状态。连续90S未收到Client消息,则Client进入掉线状态,Server将该服务移除。

代码语言:javascript
复制
#服务续约配置
#服务失效判定时间,默认90S
eureka.instance.lease-renewal-interval-in-seconds=90
#服务续约时间:多久一次向Server发送一次心跳,默认30S
eureka.instance.lease-expiration-duration-in-seconds=30
服务下线

当Eureka Client下线时,会主动向Server发送一条下线信息。

获取注册表信息

Eureka Client从Eureka Server上获取服务的注册信息,并将其缓存在本地,本地客户端在需要调用远程服务时,会从该信息中查找远程服务所对应的IP地址、端口等信息,Eureka Client上缓存的服务注册信息会定期更新,如果Eureka Server返回的注册信表信息与本地缓存的注册表信息不同的话,Eureka Client会自动处理。

Eureka集群原理

多个Eureka Server组成集群,不同的Eureka Server不区分主从节点,集群间不同Server通过Replicate进行数据同步,节点之间通过serviceUrl来相互注册,形成一个集群,集群中如果有一个节点宕机,那么Client会自动切换到其他节点。

代码语言:javascript
复制
eureka.client.service-url.defaultZone=http://eurekaA:1111/eureka,http://eurekaB:1112/eureka
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-05-09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • (二)Eureka服务交互
相关产品与服务
微服务引擎 TSE
微服务引擎(Tencent Cloud Service Engine)提供开箱即用的云上全场景微服务解决方案。支持开源增强的云原生注册配置中心(Zookeeper、Nacos 和 Apollo),北极星网格(腾讯自研并开源的 PolarisMesh)、云原生 API 网关(Kong)以及微服务应用托管的弹性微服务平台。微服务引擎完全兼容开源版本的使用方式,在功能、可用性和可运维性等多个方面进行增强。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档