开发者学堂课程【微服务框架 Spring Cloud 快速入门:Eureka是什么】学习笔记与课程紧密联系,让用户快速学习知识
课程地址:https://developer.aliyun.com/learning/course/614/detail/9343
Eureka是什么
内容介绍
一、Eureka的读音
二、Eureka的定义
三、Eureka的原理讲解
完成了最基础的微服务模块构建的底层程序后,现进行在此之上的springCloud(众多技术的集合体)学习。
现将常用技术依次加载进此前搭载好的基础框架中,观察此些技术如何逐一落地。
一、Eureka的读音
二、Eureka的定义
Netflix:网飞公司
Netflix 在设计 Eureka 时遵守AP原则。
(1)严谨定义
Eureka 是 Netflix 的一个子模块、核心模块之一。 Eureka基于REST, 用于定位服务,以实现云端中间层服务发现和故障转移。服务注册与发现对于微服务架构十分重要,服务发现与注册完成后,使用服务的标识符即可访问服务,而不再需要修改服务调用的配置文件。其功能类似于 dubbo 的注册中心,比如 Zookeeper。
(2)简单定义
简单而言,Eureka 对于微服务架构十分重要,其主管服务发现与注册,使用服务的标识符:即某微服务的名称注册进入 Eureka,即可通过Eureka寻找得到微服务,而不再需要类似于 double 等再次改变配置文件。其功能类似于 dubbo 的注册中心,比如 Zookeeper。
(3)抽象实例
例如:尚硅谷入住宏福科技园。而科技园中张贴有本楼层的入住企业花名册,即尚硅谷的具体位置可在大厅中的入住企业索引花名册中进行查看:尚硅谷位于三楼、六楼。其中,“三楼、六楼”可抽象理解为“尚硅谷”拥有的两个微服务,此张花名册即Eureka。
三、Eureka的原理讲解
1、Eureka与Zookeeper的对比
(1)架构
Eureka用于实现服务注册和发现。
此采用C-S的设计架构、Eureka Server 作为服务注册功能的服务器,其为服务注册中心。进行抽象举例,可把 Eureka Server 看作宏福科技园的物业公司,尚硅谷看作一个微服务,若尚硅谷欲达到入住宏福科技园的目的,首先应向物业公司缴纳物业费并进行登记事宜。
而系统中的其他微服务,使用 Eureka 的客户端连接到 Eureka Server 并维持心跳连接。进行抽象举例,心跳连接即缴纳物业费。
这样系统的维护人员可通过 EurekaServer 来监控系统中各个微服务是否正常运行。SpringCloud 的部分其他模块(此如Zuul) 可以通过 Eureka Server 来发现系统中的其他微服务,并执行相关的逻辑。
下图为 Eureka 架构
由于 Eureka 为 C-S 架构设计,其拥有服务端与客户端。此时服务端即为 Eureka Server,主管服务的注册与发现,抽象理解为宏福科技园的物业公司。Server Provider 为尚硅谷本身,欲租赁宏福科技园的场地,则尚硅谷需要到达鸿福科技园的物业公司注册继而进行入住。服务的消费者即为学员。
当前架构中,需要进行服务的注册、服务的提供等。Eureka Serve于Eureka Consumer 进行查找后,需要进行访问。此类过程类似于 Dubbo。
步骤:
第一步:注册 Eureka Server。
第二步:消费者正常访问。
Dubbo
Registry 为用户中心,即 Zookeeper。Provider 为制作的一个个Dubbo 子服务。Dubbo 主管服务的应用和拆分,Consumer 为消费调用。进而于 Zookeeper 之上寻找到发布的对应 Dubbo 服务并将其调用。与 Eureka 架构仅存在 Container 容器的不同。
以上两个架构具有九成的一致、相似,需注意两者的对比理解。
2、Eureka组件
Eureka包含两个组件: Eureka Server和Eureka Client
(1)Eureka Server
提供服务注册服务。
各个节点、即每个微服务器启动后,将会在EurekaServer中进行注册。进行抽象举例,即企业若欲入住四号楼,需要于物业公司之上登记注册、缴纳物业费后方可被允许入住。而每楼层的企业入住花名册上可对每个企业的入住信息进行查看。此时的企业入住花名册即为 Eureka Server。
而后 EurekaServer 中的服务注册表中将会存储所有可用服务节点的信息。服务节点的信息可在界面中进行直观查看。
(2)EurekaClient
是一个Java客户端,用于简化 Eureka Server 的交互,客户端同时也具备一个内置的、使用轮询 (round-robin) 负载算法的负载均衡器。在应用启动后,将会向 Eureka Server 发送心跳(默认周期为30秒)。如果 Eureka Server 在多个心跳周期内没有接收到某个节点的心跳,Eureka Server 将会从服务注册表中将此服务节点移除(默认90秒)。
3、方向即大致思路
将 Eureka 加载进工程之中,当前消费者可访问80-8001,现将微服务提供者注册进 Eureka,再通过Eureka进行访问。
4、三大角色
Eureka Server 提供服务的注册和发现
Eureka Provider(8001)服务提供方将自身服务注册到 Eureka,从而使服务消费方能够找到。
Eureka Consumer 服务消费方从 Eureka 获取注册服务列表,从而能够进行消费服务。
5、工程情况的盘点
包含四部分:
(1)总父工程
(2)通用模块api
(3)服务提供者 Provider
(4)服务消费者Consumer