eureka核心操作解析:集群间数据同步、自我保护、三级缓存

本文深入解析Eureka服务注册与发现组件,涵盖服务注册、续约、服务下线、服务剔除等基本概念,重点讨论Eureka集群间的数据同步、自我保护机制以及三级缓存的运作原理,旨在理解Eureka在微服务架构中的关键作用。
摘要由CSDN通过智能技术生成

1.什么是注册中心?

Eureka是spring cloud中的一个负责服务注册与发现的组件。遵循着CAP理论中的A(可用性)P(分区容错性)。

一个Eureka中分为eureka server和eureka client。其中eureka server是作为服务的注册与发现中心。eureka client既可以作为服务的生产者,又可以作为服务的消费者。具体结构如下图:

Eureka 是一个基于 REST(表述性状态转移)的服务,主要用于AWS云中定位服务,以实现中间层服务器的负载平衡和故障转移。

Spring Cloud Eureka 是 Spring Cloud Netflix 微服务套件的一部分,基于 Netflix Eureka 进行了二次封装,主要负责完成微服务架构中的服务治理功能。

2.Eureka 基本概念

2.1.1.Register - 服务注册

当 Eureka Client 向 Eureka Server 注册时,Eureka Client 提供自身的元数据,比如 IP 地址、端口、运行状况指标的 Url、主页地址等信息。

2.1.2.Renew - 服务续约

Eureka Client 在默认情况下会每隔 30 秒来发送一次心跳来进行服务续约。通过服务续约来告知 Eureka Server 该 Eureka Client 仍然可用,没有出现故障。

如果 Eureka Server 90 秒内没有收到 Eureka Client 的心跳,Eureka Server 会将该 Eureka Client 实例从注册列表中剔除。

注意:官网不建议修改服务续约的间隔时间。

2.1.3.Fetch Registries - 获取服务注册列表信息

Eureka Client 从 Eureka Server 获取服务注册表信息,并将其缓存在本地(内存中)。Eureka Client 再从本地的注册列表中获取需要的服务信息,从而进行远程调用。

这个注册列表信息定时(每 30 秒)更新一次,每次返回的列表信息可能与当前缓存的数据不一致,Eureka Client 会自己处理这些信息。

Eureka Client 和 Eureka Server 可以使用 JSON 和 XML 数据格式进行通信,默认情况下,Eureka Client 使用 JSON 的方式来获取服务注册列表信息。

Eureka Client 缓存了所有的服务注册列表信息,其实这是一个 Eureka 的缺点,比较浪费内存,当服务器实例达到一定数量之后,比如 40K 以上的集群规模,每次更新内存都会消耗很大的资源,而且每个客户端实例都会缓存这么一份数据,实际上很多都是无效数据。

2.1.4.Cancel - 服务下线

Eureka Client 在程序关闭时可以向 Eureka Server 发送下线请求。发送请求后,该客户端的实

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值