来源:https://blog.csdn.net/Bb15070047748/article/details/123646576

1. 注册中心介绍

注册中心主要设计到三个角色:

  • 服务提供者
  • 服务消费者
  • 注册中心

image.png
它们之间的关系大致如下:

  • 各个微服务在启动时,将自己的网络地址等信息注册到注册中心,注册中心存储这些数据。
  • 服务消费者从注册中心查询服务提供者的地址,并通过该地址调用服务提供者的接口。
  • 各个微服务与注册中心使用一定机制(例如心跳)通信。如果注册中心与某微服务长时间无法通信,就会注销该实例。
  • 微服务网络地址发送变化(例如实例增加或IP变动等)时,会重新注册到注册中心。这样,服务消费者就无需人工修改提供者的网络地址了。

    2. Netflix Eureka 介绍

    Eureka 是 Netflix 开发的服务注册框架,SpringCloud 将它集成在自己的子项目spring-cloud-netflix 中,实现 SpringCloud 的服务发现功能。Eureka 包含两个组件: Eureka Server 和 Eureka Client。

Eureka Server 提供服务注册服务,各个节点启动后,会在 Eureka Server 中进行注册,这样 Eureka Server 中的服务注册表中将会存储所有可用服务节点的信息,服务节点的信息可以在界面中直观的看到。

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

3. Eureka 提供的功能

Eureka 提供的最主要的功能就是服务注册于发现功能了,除本身核心功能外,Eureka 还提供了许多其他的功能:

3.1 心跳检查

在应用启动后,将会向 Eureka Server 发送心跳,默认周期为 30 秒,如果 Eureka Server在多个心跳周期内没有接收到某个节点的心跳,Eureka Server 将会从服务注册表中把这个服务节点移除(默认 90 秒)。

3.2 同步复制

在 Eureka 集群环境时,每个 Eureka Server 同时也是 Eureka Client,多个 Eureka Server 之间通过复制的方式完成服务注册表的同步。

3.3 缓存机制

Eureka 提供了客户端缓存机制,即使所有的 Eureka Server 都挂掉,客户端依然可以利用缓存中的信息消费其他服务的 API。


综上,Eureka 通过心跳检查、复制同步、客户端缓存等机制,确保了系统的高可用性、灵活性和可伸缩性。