Eureka-学习笔记

Eureka简介

  Eureka是Spring Cloud Netfix的一个子模块,也是核心模块之一,用于云端服务发现,是一个基于REST的服务,用于定位服务,以实现云端中间层服务发现和鼓掌转移。

为什么要用Eureka

  在传统架构中,当调用API或者发起网络通信的使用,我们需要知道被调用方的IP,端口号,大部分情况是通过域名和服务端口,实施上基于DNS方式,通常都是通过 nginx 或者其他代理软件实现的,因为物理机器的 ip 和端口号通常都是固定的, 所以 nginx 中的配置信息也是固定的,服务列表需要通过手动去刷新,随着后台复杂度的增 加,后台服务也越来越多,手动刷新的方式效率低而且容易出错,当后台发生故障时,处理 也会变得很麻烦。
  在微服务架构中,尤其是使用了 Docker 等虚拟化技术的微服务,其 IP 和 port 都是动态分配 的,服务实例数也是动态变化的,那么就需要精细而准确的服务发现机制。当你有一个新的 服务运行后,服务中心可以感知到,然后把它加添加到服务列表里,然后当它死掉后,会从 服务中心移除,而作为一个服务,对其它服务公开的只是服务名称,而不是最终的服务地址 URL,这对于云平台容器化架构来说是非常重要的。

Eureka原理

在这里插入图片描述
  一个服务实例被启动时,它的网络地址会被写到注册表上;当服务实例终止时,再从注册表 中删除。这个服务实例的注册表通过心跳机制动态刷新。
  Netflix OSS 提供了一个客户端服务发现的好例子。Netflix Eureka 是一个服务注册表,提供了 REST API 用来管理服务实例的注册和查询可用的实例。Netflix Ribbon 是一个 IPC 客户端,和 Eureka 一起处理可用服务实例的负载均衡。

Eureka架构

在这里插入图片描述

  • Eureka Server: 注册中心
      服务都注册在哪里,哪里就可称为 Eureka Server

  • Eureka Client
      注册在注册中心可以是服务的提供者(Applicaton Service)或者服务的消费者,(Application Client),这两类都被称为 Eureka client。

  • Application Service:服务提供者

  • Application Client:服务消费者

  • Register:服务注册

  当 Eureka 客户端向 Eureka Server 注册时,会向 Eurekaserver 注册自己的信息(比如 IP, 端口,微服务名等),Eureka Server 会存储这些信息。

  • Renew:服务续约

  微服务启动后,会周期性(默认 30 秒)地向 Eureka Server 发送心跳。如果 Eureka Server在一定时间内没有接收到某个微服务实例的心跳,Eureka Server 将会注销该实例(默认 90 秒)。

  • Cancel:服务下线

  Eureka Client 在程序关闭时向 Eureka Server 发送取消请求。 发送请求后,该客户端实例 信息将从服务器的实例注册表中删除。该下线请求不会自动完成,它需要调用以下内容:DiscoveryManager.getInstance().shutdownComponent()

Eureka特点

  1. Eureka Client 会缓存服务注册表中的信息,并将其缓存在本地,该注册列表信息定期 (默认 30 秒)更新一次,因此微服务无须每次请求都查询 Eureka Server,从而降低了 Eureka Server 的压力;其次,当注册中心挂了,客户端之间依然可以通过缓存中的信息进行调用; 注册中心重启后,客户端会继续注册进来。
  2. 当服务提供者挂了,在关闭自我保护的情况下,注册中心在规定时间(默认是 60s)内 移除客户端。
  3. 自我保护,当一个新的 Eureka Server 出现时,它尝试从相邻节点获取所有实例注册表信 息。如果从 Peer 节点获取信息时出现问题,Eureka Serve 会尝试其他的 Peer 节点。如果服务 器能够成功获取所有实例,则根据该信息设置应该接收的更新阈值。如果有任何时间, Eureka Serve 接收到的续约低于为该值配置的百分比(默认为 15 分钟内低于 85%),则服务 器开启自我保护模式,即不再剔除注册列表的信息。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值