SpringCloud 的 Eureka介绍、Eureka如何实现服务注册与发现

1、Eureka介绍

Eureka主要是用来实现服务注册与发现。
Eureka由两部分组成:服务端和客户端。服务端就是注册中心,用来接收其他的服务注册。客户端是一个Java客户端,用来注册自己,并可以实现负载均衡等功能。当需要调用某一个服务的时候,只需要去Eureka中拉取服务列表,查看调用的服务在不在其中,在的话就拿到服务地址、端口等信息,然后调用就可以。
Eureka还有一个自我保护机制,在CAP理论中,Eureka属于AP,也就是说当产生网络分区时,Eureka会保证系统的可用性,但不保证系统里面数据的一致性。这个机制默认是开启的,是服务器端容错的一种方式。也就是说,如果Eureka在短时间内没有收到某个服务的心跳包,它仍然会把这个服务保留在服务列表中,而不是直接剔除。这样可以避免因为网络问题导致的误判。

2、Eureka如何实现服务注册与发现

1、服务注册

启动 Eureka 客户端:当微服务启动时,Eureka 客户端会向 Eureka 服务器发送 HTTP 请求进行注册。
发送元数据:Eureka 客户端会发送自己的元数据信息,如 IP 地址、端口号、服务名称等。
存储注册信息:Eureka 服务器会将这些信息存储在一个双层 Map 中,以便其他服务能够查询。

2、服务续约

为了确保服务的可用性,Eureka 客户端会定期(通常是每 30 秒)向 Eureka 服务器发送心跳信息,以表明自己仍然存活并可以提供服务。
如果 Eureka 服务器在一段时间内(通常是 90 秒)没有收到某个客户端的心跳信息,那么它会认为该客户端已经宕机,并将其从服务列表中剔除。

3、服务发现

查询服务列表:当其他服务需要调用某个微服务时,它们会向 Eureka 服务器发送 HTTP 请求,查询所需服务的列表。
获取服务地址:Eureka 服务器会返回包含所需服务地址和端口号的服务列表。
负载均衡:服务消费者通常会使用某种负载均衡策略(如 Ribbon),从返回的服务列表中选择一个服务进行调用。

4、Eureka 的高可用

Eureka 支持集群模式,通过配置多个 Eureka 服务器并相互注册,可以实现高可用性。
即使某个 Eureka 服务器宕机,其他服务器仍然可以提供服务注册与发现的功能。

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-06-07 10:06:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-07 10:06:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-07 10:06:01       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-07 10:06:01       20 阅读

热门阅读

  1. 嵌入式系统日志的存储与检索策略

    2024-06-07 10:06:01       11 阅读
  2. vuex 快速入门

    2024-06-07 10:06:01       8 阅读
  3. redis

    redis

    2024-06-07 10:06:01      7 阅读
  4. 【Redis】Redis事务详解

    2024-06-07 10:06:01       8 阅读
  5. 存储器的层次结构

    2024-06-07 10:06:01       9 阅读
  6. AI学习指南机器学习篇-决策树算法简介

    2024-06-07 10:06:01       8 阅读
  7. 2020年09月C语言二级真题

    2024-06-07 10:06:01       10 阅读
  8. 用Pip配置Pytorch环境 (Pytorch==2.3.0)

    2024-06-07 10:06:01       10 阅读
  9. oracle服务器存储过程中调用http

    2024-06-07 10:06:01       7 阅读