概念
Region : AWS 云服务在全球不同的地方都有数据中心,比如北美、南美和欧洲亚洲等。与此对应,根据地理位置我们把某个地区的基础设施服务集合称为一个区域。不同区域之间是相互独立的。说白了就类似于不同地方的机房。
Available Zone:基于容灾背景提出,简单而言,就是相同 region 区域不同的机房。
Eureka是Netflix开发的服务发现框架,本身是一个基于REST的服务,主要用于定位运行在AWS域中的中间层服务,以达到负载均衡和中间层服务故障转移的目的。SpringCloud将它集成在其子项目spring-cloud-netflix中,以实现 SpringCloud 的服务发现功能。
两组件:server 和 client
Eureka包含两个组件:Eureka Server和Eureka Client。
- Eureka Server
提供服务注册服务,各个节点启动后,会在Eureka Server中进行注册,这样Eureka Server中的服务注册表中将会存储所有可用服务节点的信息,服务节点的信息可以在界面中直观的看到。 - Eureka Client
一个java客户端,用于简化与Eureka Server的交互,客户端同时也就别一个内置的、使用轮询(round-robin)负载算法的负载均衡器。
原理
1、服务注册到 Eureka
2、每 30s 发送心跳检测重新进行租约,如果客户端不能多次更新租约,它将在 90s 内从服务器注册中心移除
3、注册信息和更新会被复制到其他 Eureka 节点,来自任何区域的客户端都可以查找到注册中心信息,每 30s 发生一次复制来定位他们的服务,并进行远程调用
4、客户端还可以缓存一些服务实例信息,所以即使 Eureka 全挂掉,客户端也是可以定位到服务地址的
综上,Eureka通过心跳检查、客户端缓存等机制,确保了系统的高可用性、灵活性和可伸缩性。