迎着风跑  

#Eureka Server 注册中心

#1. 关于注册中心

在微服务架构中,每一个微服务都可以通过集群或者其它方式进行动态扩展,每一个微服务实例的网络地址都可能动态变化,这使得原本通过『硬编码地址的调用方式失去了作用』。

微服务架构中,服务地址的动态变化和数量变动,迫切需要系统建立一个『中心化的组件』对各个微服务实例信息进行登记和管理,同时让各个微服务实例之间能够相互发现,从而达到互相调用的结果。

  • 服务注册

    各个微服务(在启动时)连接到注册中心等级自己的相关信息(服务名、ip、端口等),并且在持续的运行过程中,与注册中心保持着连接,并周期性发送心跳,证明自己还健在。

  • 服务发现

    各个微服务会从注册中心下载注册表(其中包含了所有登记到注册中心的微服务的相关信息),通过注册表,各个微服务就能明确知道在网络环境中都有哪些服务存在,以及如何联系上它们。

维护中央注册表的角色被称为『服务注册平台』或者『服务注册中心』。

当一个微服务启动的时候,必须主动向服务注册中心注册其服务地址,以供其他微服务查询调用。图中橘黄色为服务注册中心,绿色为微服务节点。

图片

当一个微服务有多个实例的时候,由调用者从服务注册中心获取注册服务列表;调用者拿到『注册服务列表』之后,决定访问哪一个服务实例。

图片

#2. 关于 Eureka

Spring Cloud Netflix Eureka 是 Spring Cloud 提供用于服务于发现和注册的基础组件,是搭建 Spring Cloud 微服务架构的前提之一。

Eureka 由两部分组成:

  • 一个是 Eureka Server,提供服务注册和发现功能,即,我们上述的服务器端;

  • 另一个是 Eureka Client,它简化了客户端与服务端之间的交互。

Eureka Client 会定时将自己的注册信息登记到 Eureka Server 中,并从 Server 中下载包括了其它 Eurek Client 信息的『注册表』。

图片

#3. 关于 Eureka 的 “后浪”

在微服务的诞生和发展的早期,Netflix 的 Eureka 是 Spring Cloud 体系中实现注册中心的唯一选择,但是现在情况不一样了。

  • Consul 是 Google 开源的一个使用 Go 语言开发的服务发现、配置管理中心服务;

  • Nacos 是 Alibaba 开源的一个使用 Java 语言开发的服务发现、配置管理中心服务。

无论是在国内外,Eureka 都已经不是注册中心技术选型的第一选择了。

Eureka 和它们的区别在于:

  1. Eureka 是一个 jar 包,它不能独立运行,而无论是 Consul 还是 Nacos 它们都是独立的产品,可以独立运行。

  2. Eureka 只能提供服务注册与发现功能,而无论是 Consul 还是 Nacos 它们都整合了配置中i性能的功能。

在这里,我们学习的重点是《Spring Cloud Alibaba Nacos》。

posted on 2021-11-29 14:21  迎着风跑  阅读(53)  评论(0编辑  收藏  举报