是什么
-
Eureka是Netfix的子模块,也是核心模块之一。
-
Eureka是一个基于REST的服务,用于定位服务,以实现云端中间层之间的服务发现与故障转移。
服务注册与发现对于微服务来说是非常重要的,有了服务注册与发现,只要通过服务标识符,就可以访问到服务而不需要手动修改服务调用配置文件了。功能类似于Dubbo的注册中心,比如Zookeeper。
Eureka相当于物业公司,我们入住的时候需要去登记注册,Eureka就用来对微服务做登记注册
原理
- Eureka采用了C-S的设计架构,Eureka作为服务注册功能的服务器,它是服务注册中心。
- 系统中的其他微服务通过Eureka客户端,连接到Eureka Server并维持心跳连接,这样系统的维护人员可以通过Eureka Server来监控系统中各个微服务是否正常运行。SpringCloud的其他模块,(如Zuul)就可以通过Eureka Server来发现系统中的微服务,并执行相关逻辑。
- 工作过程举例:
- consumer和provider两个微服务通过Eureka客户端注册到Eureka Server
- consumer就可以通过Eureka找到provider服务,执行并调用provider的业务逻辑。
- Eureka包含两个组件,Eureka Server和Eureka Client
- Eureka Server提供服务注册服务,各个节点(微服务)启动后会在Eureka Server中进行注册,这样Eureka Server的注册表中将会保存所有可用服务节点的信息,服务节点信息可以在界面中直观的看到。
- Eureka Client是一个Java客户端,用于简化Eureka Server的交互,客户端同时具备一个内置的、使用轮询负载算法(http://developer.51cto.com/art/201908/602135.htm)的负载均衡器,在应用启动后会向Eureka Server发送默认心跳(周期为30秒),如果Eureka Server在多个默认心跳周期内没有接收到节点心跳,那么Eureka Server会将该服务节点从注册表中移除(默认为90秒)。
Eureka和Zookeeper
在我的另一篇博文有详细总结:https://blog.youkuaiyun.com/sinat_38719275/article/details/102984281