#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 和它们的区别在于:
-
Eureka 是一个 jar 包,它不能独立运行,而无论是 Consul 还是 Nacos 它们都是独立的产品,可以独立运行。
-
Eureka 只能提供服务注册与发现功能,而无论是 Consul 还是 Nacos 它们都整合了配置中i性能的功能。
在这里,我们学习的重点是《Spring Cloud Alibaba Nacos》。
←