Eureka最全详解(图文全面总结)

Eureka最全详解(图文全面总结)

Eureka是Spring Cloud的注册中心,也是微服务的核心组件,下面我就全面来详解Eureka@mikechen

Eureka定义

Eureka是 Spring Cloud 的服务治理框架,用于实现分布式系统中的服务注册与发现,与之对应的是 Dubbo 框架的Zookeeper。

 

Eureka的作用

Eureka的主要作用就是解决服务注册与发现,允许服务在启动时向 Eureka 服务器注册自己的信息。

比如:包括服务名称、网络地址等,其他服务可以通过查询 Eureka 服务器获取可用服务的信息。

 

Eureka架构

Eureka 架构主要包括:Eureka Server 和 Eureka Client 等组件,如下图所示:

Eureka最全详解(图文全面总结)
1.Eureka Server

Eureka Server 作为服务注册中心,接收来自服务提供方的注册请求,并维护所有注册的服务实例信息。

同时,Eureka Server 也作为服务发现中心,允许服务消费方查询和发现其他服务的地址信息。

 

2.Service Consumer

Service Consumer 负责调用远程服务,并处理返回结果,以完成自身的业务逻辑。

Service Consumer 通过 Eureka Server 发现并获取其他服务的地址信息,然后通过网络调用这些服务。

3.Service Provider

Service Provider 将自己的服务注册到 Eureka Server 上,以便其他服务能够发现和调用它。

Service Provider 负责实现服务逻辑,并通过网络暴露服务接口,使得其他服务可以访问它提供的功能。

这三个角色协同工作,构成了 Eureka 的基本架构,实现了服务注册与发现的功能。

 

Eureka原理

Eureka的完整工作流程,大致分为如下10步:

 

Eureka最全详解(图文全面总结)

  1. 启动 Eureka Server:首先,启动 Eureka Server 作为服务注册中心。
  2. Service Provider 启动:服务提供方启动时,其内部的 Eureka Client 向 Eureka Server 发送注册请求。
  3. 注册服务信息:Eureka Client 将服务的信息(如服务名称、网络地址等)发送给 Eureka Server。
  4. 服务注册成功:Eureka Server 收到注册请求后,在自己的注册表中记录下该服务的信息。
  5. Service Consumer 启动:服务消费方启动时,其内部的 Eureka Client 向 Eureka Server 发送查询请求。
  6. 获取可用服务列表:Eureka Client 查询 Eureka Server 上注册的服务列表,获取可用的服务信息。
  7. 选择合适的服务实例:根据负载均衡策略,服务消费方选择合适的服务实例进行调用。
  8. 调用服务:服务消费方使用获取到的服务实例的地址信息,通过网络调用服务提供方的接口。
  9. 定期心跳续约:注册成功的服务定期向 Eureka Server 发送心跳请求,以更新自身状态信息。
  10. 健康状态检查与失效剔除:Eureka Server 定期检查服务实例的健康状态,若发现不健康的实例,则标记并移除。

陈睿mikechen

10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。

关注作者「mikechen」公众号,获取更多技术干货!

后台回复架构,即可获取《阿里架构师进阶专题全部合集》,后台回复面试即可获取《史上最全阿里Java面试题总结

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧