eureka介绍

介绍

Eureka is a REST (Representational State Transfer) based service that is primarily used in the AWS cloud for locating services for the purpose of load balancing and failover of middle-tier servers.

Eureka 是一个基于 REST 的服务,主要在 AWS 云中使用, 定位服务来进行中间层服务器的负载均衡和故障转移。

官网:
https://github.com/Netflix/eureka/wiki/Eureka-at-a-glance

一句话理解

是Spring Cloud集合中一个组件,用于 服务注册 和 服务发现。

Netflix

Spring Cloud 封装了 Netflix 公司开发的 Eureka 模块来实现服务注册和发现。Eureka 采用了 C-S 的设计架构。

同类服务

  • zookeeper
  • nacos
  • consul

组成

Eureka包含两个组件:Eureka Server 和 Eureka Client:

  • Eureka Server:提供服务注册,各个节点启动后,会在Eureka Server中进行注册,这样Eureka Server中的服务注册表中将会存储所有可用服务节点的信息。

  • Eureka Client:是一个java客户端,用来简化与Eureka Server的交互,客户端也是一个 内置 的、使用 轮询(round-robin)负载算法 的 负载均衡器。

Eureka client

Eureka client又分为 Application Service 和 Application Client :

  • Application Service :服务提供方,将自身服务注册到Eureka(即:服务注册),从而使 Application Client 能够找到

  • Application Client:服务消费方,从Eureka获取注册服务列表(即:服务发现),从而能够消费(调用)服务

Application Service 和 Application Client 需要 内置Eureka Client,简化与 Eureka Server 通信

Eureka 客户端与服务器之间的通信

  1. Register(服务注册):Application Service 启动时,会通过 Eureka Client向 Eureka Server 进行注册自己的信息(例如网络信息),Eureka Server会存储该服务的信息

  2. Renew(服务续约):Application Service 启动后,会周期性地向 Eureka Server 发送心跳包,每 30 秒发送一次。告诉 Eureka Server 自己还活着。
    如果Eureka Server在一定时间内没有接收到某个微服务节点的心跳,Eureka Server将会注销该微服务节点(默认90秒);

  3. Cancel(服务下线):当 Application Service 关闭时会向 Eureka Server 发送消息,把自己从服务列表中删除。防止 Application Client 调用到不存在的服务。

  4. Get Registry(获取服务注册列表):Application Client 从 Eureka Server 获取 Application Service 服务列表。

  5. Replicate(集群中数据同步):Eureka Server 集群中的数据复制与同步。

  6. Make Remote Call(远程调用):Application Client 远程调用 Application Service

Eureka Client会缓存Eureka Server中的信息。即使所有的Eureka Server节点都宕掉,服务消费者依然可以使用缓存中的信息找到服务提供者。

Eureka通过心跳检测、健康检查和客户端缓存等机制,提高了系统的灵活性、可伸缩性和可用性。

案例

在社交app中(如:微博、抖音、b站等),关注某人、点赞、发评论、发私信、你关注的人发新作品,都会给对方推送消息,也就是说:

  • 推送消息 是公共服务,就是上图的Application Service,

  • 关注某人、点赞、发评论、发私信是Application Client,需要调用 推送消息 这个公共服务

传统方式-单体服务

当访问量增大时,单体服务无法承受
业务功能很多时,开发难度加大

拆分多个服务

当一个推送消息服务不能承受,部署多个推送消息服务时,其他服务不知道该服务的存在

eureka方式

类比美团

当骑手很多、饭馆很多时,必须有美团这个公司做对接,否则新开一家饭馆,骑手不知道

  1. 新开饭馆,去美团注册
  2. 骑手通过美团app获取该饭馆的地址
  3. 骑手取饭馆取餐

原文出处:/show_1EF5hTa43hvF.html