Eureka简介
REST通常是基于HTTP、URI、XML和HTML的框架。近年来成为最主要的web服务设计模式。由于使用方便,已经普遍取代了基于SOAP和WSDL的接口设计。如果在设计应用中坚持使用REST原则,那么就会得到优质的web框架。Eureka服务发现组件就是基于REST的服务。
Eureka原理
Region和Availability Zone都是AWS的概念。每个Region中可以有多个Availability Zone,各个Region之间完全隔离。AWS通过这种方式实现最大的容错率和稳定性。
●Application Service 相当于服务提供者。
●Application Client 相当于服务消费者。
●Make Remote Call ,可以理解成调用 RESTful API 的行为。
●us - east - 1c 、 us - east - 1d 等都是 Availability zone ,它们都属于 us - east -1这个 region 。由图4-3可知, Eureka 包含两个组件: Eureka Server 和 Eureka Client .它们的作用如下:
●Eureka Server 提供服务发现的能力,各个微服务启动时,会向 Eureka Server 注册自己的信息(例如 IP 、端口、微服务名称等), Eureka Server 会存储这些信息。
●Eureka Client 是一个 Java 客户端,用于简化与 Eureka Server 的交互。
●微服务启动后,会周期性(默认30秒)地向 Eureka Server 发送心跳以续约自己的
“租期”。
●如果 Eureka Server 在一定时间内没有接收到某个微服务实例的心跳, Eureka Server 将会注销该实例(默认90秒)。
●默认情况下、 Fureka Server 同时也是 Eureka Client 。多个 Eureka Server 实例,互相之间通过复制的方式,来实现服务注册表中数据的同步。
●Eureka Client 会缓存服务注册表中的信息。这种方式有一定的优势一首先,微服务无须每次请求都查询 Eureka Server ,从而降低了 Eureka Server 的压力;其次,即使 Eureka Server 所有节点都宕掉,服务消费者依然可以使用缓存中的信息找到服务提供者并完成调用。
综上, Eureka 通过心跳检查、客户端缓存等机制,提高了系统的灵活性、可伸缩性和可用性。