Eureka原理

my:

服务注册与发现

心跳

自我保护

故障转移

Eureka 原理

Eureka 是一个由 Netflix 开源的服务注册与发现框架,广泛用于微服务架构中,尤其是 Spring Cloud 中的服务注册与发现。Eureka 的主要作用是管理和协调分布式系统中的服务实例,使得服务能够相互发现并进行通信。Eureka 可以有效地处理微服务架构中的服务定位、故障转移、负载均衡等问题。

Eureka 的核心组件

Eureka 的原理可以分为以下几个关键部分:

  1. Eureka Server(Eureka Server)

    • 作为服务注册中心,提供服务注册和发现功能。
    • 微服务应用将自己注册到 Eureka Server 上,并定期发送心跳以维持注册信息的有效性。
    • 客户端通过 Eureka Server 查找其他服务的实例。
  2. Eureka Client(Eureka Client)

    • 微服务的客户端,通过 Eureka 客户端 SDK 来与 Eureka Server 交互,完成服务注册、获取服务信息、心跳等操作。
    • 客户端使用 Ribbon 或其他负载均衡器来实现负载均衡,基于 Eureka Server 提供的服务实例列表来进行服务调用。
  3. Eureka Dashboard

    • 提供一个 Web 界面用于展示当前注册到 Eureka 的服务以及服务实例的健康状态。
Eureka 的工作原理
  1. 服务注册:

    • 微服务启动时,Eureka 客户端会将自己注册到 Eureka Server 上,发送一个包含服务信息(如服务名称、实例ID、IP 地址、端口等)的注册请求。
    • Eureka Server 会将这个服务实例保存在自己的注册表中(通常是内存中,但可以持久化到数据库中)。
    • 每个服务实例会定期向 Eureka Server 发送心跳包,以告诉 Eureka Server 该服务仍然存活。
  2. 服务发现:

    • 当一个微服务需要调用其他微服务时,它会通过 Eureka 客户端查询 Eureka Server,获取到其他服务实例的列表。
    • Eureka 客户端会通过 负载均衡器(如 Ribbon)选择合适的实例进行调用。
  3. 心跳与失效:

    • Eureka Client 会定期发送心跳到 Eureka Server,用以确认自己依然在线。
    • 如果 Eureka Server 在一定时间内未收到心跳(默认 90 秒),则认为该服务实例已失效,并从注册表中将其移除。
    • 同时,Eureka 也支持一个 自我保护模式(Self Protection Mode),当服务器上的服务实例数量较少时,Eureka 会避免自动移除实例,以防止由于网络问题导致的服务过早失效。
  4. 故障转移:

    • Eureka 允许多个 Eureka Server 作为集群工作,这样可以确保高可用性。
    • Eureka Server 会通过 复制(Replication)机制将自己管理的注册信息同步到其他 Eureka Server 上。
    • 客户端会自动连接最近的一个 Eureka Server。如果某个 Eureka Server 宕机,客户端可以自动连接到其他可用的 Eureka Server。
  5. Eureka 的自我保护模式:

    • 默认情况下,Eureka Server 会在短时间内丢失连接的服务实例时,启动自我保护模式,保持服务实例的存活状态,即使它们未发送心跳。
    • 这样做的目的是防止网络问题或其他临时问题导致的服务实例被误删除,保持高可用性。
    • 当恢复正常时,Eureka Server 会重新评估并更新注册表。
Eureka 核心特性
  1. 服务注册与发现:

    • 服务注册中心(Eureka Server)允许微服务动态地注册自己,并允许其他微服务通过 Eureka Server 查找可用的服务。
  2. 负载均衡:

    • Eureka 客户端能够获取其他服务实例的列表,并且可以结合 Ribbon 或其他负载均衡策略来进行服务调用。
  3. 健康检查与心跳:

    • Eureka 通过心跳机制确保服务实例的健康状态,并及时更新注册表。
  4. 高可用性:

    • Eureka 采用了客户端与服务端双向复制、容错机制,即使某些节点出现问题,系统依然可以继续运行。
  5. 自我保护模式:

    • 在短时间内丢失大量服务实例时,Eureka Server 会启动自我保护模式,避免因为网络抖动导致服务实例被错误移除。
  6. 客户端缓存:

    • Eureka 客户端会缓存服务注册信息,避免频繁向 Eureka Server 请求数据。
    • 即使 Eureka Server 短时间不可用,客户端依然可以通过本地缓存的服务信息进行调用。

Eureka 的工作流程

  1. 服务启动:当微服务启动时,Eureka 客户端会向 Eureka Server 注册自己的服务信息,包括服务名、IP 地址、端口等。

  2. 服务健康检查与心跳:每个服务实例会定期向 Eureka Server 发送心跳,以保持服务注册信息的有效性。如果 Eureka Server 没收到心跳,它会将该服务标记为不可用。

  3. 服务调用:客户端通过 Eureka Server 获取到其他服务的实例信息,并利用负载均衡策略(如 Ribbon)进行调用。

  4. 服务下线:当服务实例关闭时,Eureka 客户端会向 Eureka Server 发送注销请求,Eureka Server 会将该服务实例从注册表中移除。

总结

Eureka 是一个分布式服务注册与发现框架,广泛应用于微服务架构中。通过 Eureka Server 提供服务注册与发现功能,Eureka Client 负责与 Eureka Server 交互,完成服务的注册、发现、心跳等操作。Eureka 的核心特性包括服务注册与发现、负载均衡、健康检查、故障转移和高可用性等,确保微服务架构在大规模分布式系统中的高效运行。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/503066.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第30天:Web开发-PHP应用组件框架前端模版渲染三方插件富文本编辑器CVE审计

#知识点 1、安全开发-原生PHP-开发组件集合 2、安全开发-原生PHP-模版引擎渲染 3、安全开发-原生PHP-第三方编辑器 组件/框架 说明 [Web框架] Laravel 现代化、功能全面的框架,适合大多数Web应用。 Symfony 高度模块化、功能强大的框架,适合复杂…

解决ESP32 wifi scan:1. 获取WIFI扫描列表个数为0 的问题 2.扫描WIFI列表时导致程序崩溃问题。

1. 获取WIFI扫描列表个数为0 的问题 参考ESP32的wifi scan例子,出问题的程序源码: 分析原因: 查看esp_wifi.c的源码,我们会发现: 上面意思就是但调用esp_wifi_scan_get_ap_records获取AP列表后,将会…

【动态重建】时间高斯分层的长体积视频

标题:Representing Long Volumetric Video with Temporal Gaussian Hierarchy 来源:浙江大学 链接:https://zju3dv.github.io/longvolcap/ 文章目录 摘要一、前言二、主要方法2.1 时间高斯分层2.2 高效渲染2.3 层次结构更新2.4 紧凑的外观模型…

mongodb==安装prisma连接

官网下载mongodb,解压安装 Download MongoDB Community Server | MongoDB 修改bin/mongod.cfg # mongod.conf# for documentation of all options, see: # http://docs.mongodb.org/manual/reference/configuration-options/# Where and how to store data. storage:dbPat…

conda安装及demo:SadTalker实现图片+音频生成高质量视频

1.安装conda 下载各个版本地址:https://repo.anaconda.com/archive/ win10版本: Anaconda3-2023.03-1-Windows-x86_64 linux版本: Anaconda3-2023.03-1-Linux-x86_64 Windows安装 环境变量 conda -V2.配置conda镜像源 安装pip conda…

TDengine + MQTT :车联网时序数据库如何高效接入

现代新能源汽车,作为一种内部系统极为复杂的交通工具,配备了大量传感器、导航设备、应用软件,这些传感器产生的数据都需要上报到车联网平台当中。对于这些车辆的状态数据(如车速、发动机转速等)、位置数据(…

LabVIEW瞬变电磁接收系统

利用LabVIEW软件与USB4432采集卡开发瞬变电磁接收系统。系统通过改进硬件配置与软件编程,解决了传统仪器在信噪比低和抗干扰能力差的问题,实现了高精度的数据采集和处理,特别适用于地质勘探等领域。 ​ 项目背景: 瞬变电磁法是探…

【读书与思考】历史是一个好东西

【AI论文解读】【AI知识点】【AI小项目】【AI战略思考】【AI日记】【读书与思考】 导言 以后《AI日记》专栏我想专注于 AI 相关的学习、成长和工作等。而与 AI 无关的一些读书、思考和闲聊,我打算写到这里,我会尽量控制自己少想和少写。 下图的一些感想…

网络层协议之IP数据包层分片随笔

1.全篇内容均在图中,如何分片以及分片举例细节拆解,见下图: 1.1分片公式: 上述公式中有关/8 再*8目的是为了使用8字节对齐,从而使的分片数据包均为8字节整数倍! 1.2.ip层数据包分片计算&图解

Python爬虫基础——认识网页结构(各种标签的使用)

1、添加<div>标签的代码定义了两个区块的宽度和高度均为100px&#xff0c;边框的格式也相同&#xff0c;只是区块中显示的内容不同&#xff1b; 2、添加<ul>和<ol>标签分别用于定义无序列表和有序列表。<il>标签位于<ul>标签或<ol>标签之…

牛客网刷题 ——C语言初阶(6指针)——字符逆序

1. 题目描述&#xff1a;字符逆序 牛客网题目链接 将一个字符串str的内容颠倒过来&#xff0c;并输出。 输入描述: 输入一个字符串&#xff0c;可以有空格 输出描述: 输出逆序的字符串 示例1 输入 I am a student 输出 tneduts a ma I 2. 思路 首先字符串逆序&#xff0c;之…

安徽省乡镇界面图层+arcgis数据shp格式-乡镇名称和编码2020年+wgs84坐标内容测评

最新安徽省乡镇界面图层arcgis数据shp格式-乡镇名称和编码2020年wgs84坐标无偏移

Telephony Netd

1、Linux补充知识 iptables iptables是Linux防火墙系统的重要组成部分,iptables的主要功能是实现对网络数据包进出设备及转发的控制。当数据包需要进入设备、从设备中流出或者由该设备转发、路由时,都可以使用iptables进行控制。 Netlink Netlink套接字是用以实现用户进程与内…

HashMap总结使用+原理+面试

文章目录 1.Hashmap的基本使用创建hashmap对象。遍历hashmap统计字母出现的次数用来投票计算返回JSON数据 2.hashmap源码阅读put源码阅读 3. HashMap 面试题目hashmap实现的原理什么时候数组需要进行扩容hashmap怎么确定把数据放到那个节点的哪个位置。为什么用 n - 1 与运算&a…

SpringMVC(四)响应

目录 数据处理及跳转 1. 结果跳转方式 ①.ModelAndView ②.ServletAPI 1、通过HttpServletResponse进行输出 2、通过HttpServletResponse实现请求转发 3、通过HttpServletResponse实现重定向 ③.SpringMVC 1.直接输出 2.请求转发 3.重定向 2.ResponseBody响应json数…

Mac软件介绍之录屏软件Filmage Screen

软件介绍 Filmage Screen 是一款专业的视频录制和编辑软件&#xff0c;适用于 Mac 系统 可以选择4k 60fps&#xff0c;可以选择录制电脑屏幕&#xff0c;摄像头录制&#xff0c;可以选择区域录制。同时也支持&#xff0c;简单的视频剪辑。 可以同时录制电脑麦克风声音 标准…

欧科云链研究院:ChatGPT 眼中的 Web3

编辑&#xff5c;OKG Research 转眼间&#xff0c;2024年已经进入尾声&#xff0c;Web3 行业经历了热闹非凡的一年。今年注定也是属于AI的重要一年&#xff0c;OKG Research 决定拉上 ChatGPT 这位“最懂归纳的AI拍档”&#xff0c;尝试把一整年的研究内容浓缩成精华。我们一共…

.NET 9.0 WebApi 发布到 IIS 详细步骤

微软表示&#xff0c;.NET 9 是迄今为止性能最高的 .NET 版本&#xff0c;对运行时、工作负载和语言方面进行了 1,000 多项与性能相关的改进&#xff0c;并采用了更高效的算法来生成更好的代码。 .NET 9 是 .NET 8 的继任者&#xff0c;特别侧重于云原生应用和性能。 作为标准期…

【通识安全】煤气中毒急救的处置

1.煤气中毒的主要症状与体征一氧化碳中毒&#xff0c;其中毒症状一般分为轻、中、重三种。 (1)轻度&#xff1a;仅有头晕、头痛、眼花、心慌、胸闷、恶心等症状。如迅速打开门窗&#xff0c;或将病人移出中毒环境&#xff0c;使之吸入新鲜空气和休息&#xff0c;给些热饮料&am…

ECCV`24 | 首次解决文本到3D NeRFs分解问题!港中文等提出DreamDissector

论文链接&#xff1a;https://arxiv.org/abs/2407.16260 亮点直击 据作者所知&#xff0c;作者是第一个解决文本到3D NeRFs分解问题的团队。 为了解决这个问题&#xff0c;本文引入了一个名为DreamDissector的新颖框架&#xff0c;包括一种新颖的神经类别场&#xff08;NeCF&a…