Eureka 采用了 C/S 的设计架构。
Eureka Server 作为服务注册功能的服务器,它是服务注册中心。
系统中的其他微服务,通过 Eureka 客户端连接到 Eureka Server 并维持心跳连接。这样系统的维护人员就可以通过 Eureka Server 来监控系统中各个微服务是否正常运行。SpringCloud 的一些其他模块(比如Zuul)就可以通过 Eureka Server 来发现系统中的其他微服务,并执行相关的逻辑。
:-: ![](https://img.kancloud.cn/09/ff/09ffdb3429bb0377438a775de33d8639_1584x479.png)
Eureka架构
<br/>
:-: ![](https://img.kancloud.cn/43/38/433800902c123d495d603c5f6e1ab357_1515x417.png)
Dubbo的架构
<br/>
<mark>Eureka包含两个组件:Eureka Server 和 Eureka Client</mark>。
1. Eureka Server 提供服务注册服务,各个节点启动后,会在 Eureka Server 中进行注册,这样Eureka Server 中的服务注册表中将会存储所有可用服务节点的信息,服务节点的信息可以在界面中直观的看到。
2. Eureka Client 是一个 Java 客户端,用于简化 Eureka Server 的交互。客户端同时也具备一个内置的、使用轮询算法的负载均衡器。
在应用启动后,将会向 Eureka Server 发送心跳,默认周期为30秒。如果 Eureka Server 在多个心跳周期内没有接收到某个节点的心跳,Eureka Server 将会从服务注册表中把这个服务节点移除、默认90秒。
>[info]Spring Cloud 已经封装了 Eureka 模块来实现服务注册和发现。