Version: Next
Eureka 基础知识
提示
到目前为止,我们的两个微服务之间组成了下面的框架
- 在此基础上,逐渐融入 Spring Cloud 的各个组件
服务治理
什么是 服务治理
- Spring Cloud 封装了 Netfix 公司开发的 Eureka 模块来实现服务治理
- 在传统的 rpc 远程调用框架中,管理每个服务于服务之间依赖关系比较复杂,管理也复杂,所以需要使用 服务治理 ,管理服务于服务之间的依赖关系,可以实现
服务调用
、负载均衡
、容错
等,实现 服务发现与注册
服务发现与注册
什么是 服务发现与注册
- Eureka 采用了 CS 设计架构
- Eureka Server: 作为服务注册功能的
服务器
,是服务注册中心- 系统中的其他微服务:使用
Eureka Client
连接到Eureka Server
并维持心跳- 系统维护人员可以通过
Eureka Server
监控系统中各个微服务是否正常运行
注册中心
- 当服务器启动时,将自己的服务器信息,如
服务地址
、通讯地址
等以别名
的方式注册到注册中心- 另一方服务器(通常为消费者),以该
别名
的方式去注册中心获取其实际服务通信地址
,再通过本地 RPC 功能,底层利用 HttpClient 实现远程调用- 消费者获取服务地址后,将其缓存在本地 JVM 内存中,默认每间隔
30
秒更新一次服务调用地址- RPC 远程调用框架的核心设计思想在于注册中心:
- 注册中心管理每个服务于服务之间的一种依赖关系 (服务治理概念)
- 在任何 RPC 远程框架中,都会有一个注册中心,用以存放服务地址相关信息
- 本质:存储
key-value
数据,key
为服务器名,value
为调用地址
Eureka 的两个组件
Eureka Server
提供服务注册服务
- 各个微服务节点通过配置启动后,会在
Eureka Server
中进行注册,这样Eureka Server
中的服务注册表将会存储所有可访问服务节点的信息,服务节点的信息可以再界面中直观的查看
Eureka Client
通过注册中心进行访问
- 是一个 Java 客户端,用于简化
Eureka Server
的交互,客户端同时也具备一个内置的、使用轮询 (Round-Robin) 负载算法的负载均衡器- 应用启动后,将会向
Eureka Server
发送心跳,默认周期为30
秒- 如果
Eureka Server
在多个心跳周期内没有收到某个节点的心跳,Eureka Server
将会从服务注册表中把这个节点移除
,默认90
秒