Spring Cloud 封装了 Netflix 公司开发的 Eureka 模块来实现服务注册和发现(请对比 Zookeeper)。

Eureka 采用了 C-S 的设计架构。Eureka Server 作为服务注册功能的服务器,它是服务注册 中心。

而系统中的其他微服务,使用 Eureka 的客户端连接到 Eureka Server并维持心跳连接。这样 系统的维护人员就可以通过 Eureka Server 来监控系统中各个微服务是否正常运行。 SpringCloud 的一些其他模块(比如Zuul)就可以通过 Eureka Server 来发现系统中的其他 微服务,并执行相关的逻辑。

Eureka包含两个组件: Eureka Server 和 Eureka Client

Eureka Server提供服务注册服务各个节点启动后,会在EurekaServer中进行注册,这样 EurekaServer中的服务注册表中将会存储所有可用服务节点的信息,服务节点的信息可以在 界面中直观的看到

EurekaClient是一个Java客户端用于简化Eureka Server的交互,客户端同时也具备一个内置 的、使用轮询(round-robin)负载算法的负载均衡器。在应用启动后,将会向Eureka Server 发送心跳(默认周期为30秒)。如果Eureka Server在多个心跳周期内没有接收到某个节点的心 跳,EurekaServer将会从服务注册表中把这个服务节点移除(默认90秒)