下一篇:Spring Cloud Eureka Server
在没有特殊说明的情况下,我们常说的 eureka 都指的是 server 端
Netflix Eureka
Eureka 是 Netflix 公司开发的,一个开源的基于 REST 服务的,服务注册与发现组件。它采用 C-S 架构,分为 client 端和 server 端
- Eureka Server:提供服务注册和发现的能力
- Eureka Client: 用于简化与 Eureka Server 的交互
Eureka 之间的相互识别
分布式架构中,每个微服务都需要注册到 Eureka Server 上,这些微服务之间如何相互识别呢,Eureka 提供了如下方法
- 同步:每个 Eureka Server 同时也是 Eureka Client(在其他 Eureka Server 眼中),多个 Eureka Server 之间通过复制的方式完成服务注册表的同步,形成 Eureka 的高可用
- 识别:Eureka Client 会缓存 Eureka Server 中的信息,即使所有 Eureka Server 节点都宕掉,服务消费者仍可使用缓存中的信息找到服务提供者
- 续约:Eureka Client 会周期性(默认30s)地向 Eureka Server 发送心跳以 Renew(续约)
- 续期:Eureka Server 会定期(默认60s)执行一次失效服务检测,它会将超过一定时间(默认90s)没有 Renew 的服务节点从服务注册表中移除
总结
Eureka 有以下特点
- 开源
- 基于REST的服务
- 采用C-S的设计架构,分为 客户端 和 服务端
- 服务注册采用心跳连接机制,客户端需要连接到Eureka Server并维持心跳