Eureka服务注册与发现

2023-10-31

1. 什么是Eureka?

  • Eureka是Netflix的子模块,Eureka是一个基于Rest的服务,用于定位服务,以实现云端中间层服务发现和故障转移,服务注册与发现对于微服务来说是非常重要的,有了服务注册与发现,只需要使用服务的标识符,就可以访问到服务,而不需要修改调用的配置文件了,功能类似于Dubbo的注册中心,比如zookeeper。
  • Netflix 在设计Eureka时,遵循的就是AP原则。

2. Eureka原理

  • Eureka的基本架构
    • SpringCloud 封装了NetFlix 公司开发的Eureka模块来实现服务注册和发现
    • Eureka采用了CS的架构设计,RurekaServer作为服务注册功能的服务器,是服务注册中心
    • 系统中的其他微服务,使用Eureka的客户端连接到EurekaServer并维持心跳连接。这样系统的维护人员就可以通过EurekaServer来监控系统中各个微服务是否正常运行。
    • Eureka 包含了两个组件:Eureka Server 和 Eureka Client
      • Eureka Server 提供服务注册,各个节点启动后,会在EurekaServer中进行注册,EurekaServer中的服务注册表中将会存储所有可用的服务节点信息,服务节点的信息可以在界面中看到。
      • Eureka Client 是一个java客户端,用于简化EurekaServer的交互,客户端同时也具备一个内置的,使用轮询负载算法的负载均衡器。在应用启动后,将会向EurekaServer发送心跳(默认周期为30秒),如果Eureka Server 在多个心跳周期内没有接收到某个节点的心跳,Eureka Server将会从服务注册表中把这个服务节点移除掉(默认周期为90秒)
  • 三大角色
    • Eureka Server: 提供服务的注册与发现
    • Service Provider: 将自身服务注册到Eureka中,从而使消费方能够找到
    • Service Consumer:服务消费方从Eureka中获取注册服务列表,从而找到服务并消费
      在这里插入图片描述
      在这里插入图片描述

3.对比Zookeeper

CAP原则

  • C(Consistency)强一致性
  • A(Availability)可用性
  • P(Partition tolerance)分区容错性

ACID原则

  • A(Atomicity)原子性
  • C(Consistency)一致性
  • I(Isolation)隔离性
  • D(Durablility)持久性

RDBMS(Mysql、Oracle、sqlServer)–>ACID 原则
NoSQL(redis、mongdb)–>CAP原则

CAP的三进二(即不可能三个同时满足):CA、AP、CP

CAP理论的核心

  • 一个分布式系统不可能同时很好的满足一致性,可用性和分区容错性这三个需求
  • 根据CAP原理,将NoSQL数据库分成了满足CA原则,满足CP原则和满足AP原则三大类:
    • CA:单点集群,满足一致性,可用性的系统,通常可扩展性较差
    • CP:满足一致性,分区容错性的系统,通常性能不是特别高
    • AP:满足可用性,分区容错性的系统,通常可能对一致性要求低一些

作为服务注册中心,Eureka比Zookeeper好在哪里?
著名的CAP理论指出,一个分布式系统不可能同时满足C(一致性)、A(可用性)、P(容错性)。由于分区容错性P在分布式系统中是必须要保证的,因此我们只能在A和C之间进行权衡。

  • Zookeeper保证的是CP;
  • Eureka保证的是AP;

Zookeeper保证的是CP
Eureka保证的是AP

Eureka可以很好的应对因网络故障导致部分节点失去联系的情况,而不会像zookeeper那样使整个注册服务瘫痪

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Eureka服务注册与发现 的相关文章

随机推荐

  • JAVA面试知识整理

    1 我们是根据什么创建一个表 数据库范式 2 数据库范式 第一范式 数据表的原子性 创建表的字段的时候 每个字段列不可再分出更多的字段 第二范式 在第一范式基础上 表需要一个唯一的字段为主键 通过主键可以快速的找到每一条数据 第三范式 在第
  • jupyter中使用matplotlib

    小试牛刀 matplotlib可能是Python 2D绘图领域使用最广泛的库了 它能够让使用者轻松地将数据图形化 并且提供多样化的输出格式 同时 它几乎能够对图进行所有你能够想到的细节的修饰 我们先来看看一个小例子 In 1 matplot
  • 【01】-迟来的毕设进度记录-【场景搭建、photon实时实现联机(二)】

    嗨我又回来了 今天的任务是 场景KO掉啦 大概基础就这样 植被细节接着弄 重大突破 在动画方面进行了修改 如下图 思路是 玩家按下鼠标左键直接攻击播放攻击动画 不需要bool繁琐的判断 代码也简化 而且之前有BUG 就是玩家按着鼠标左键时
  • SQL ORDER BY 关键字

    ORDER BY 关键字用于对结果集进行排序 SQL ORDER BY 关键字 ORDER BY 关键字用于对结果集按照一个列或者多个列进行排序 ORDER BY 关键字默认按照升序对记录进行排序 如果需要按照降序对记录进行排序 您可以使用
  • 《Ordinal Depth Supervision for 3D Human Pose Estimation》-CVPR2018 论文阅读

    简介 Ordinal Depth Supervision for 3D Human Pose Estimation 是一篇CVPR2018 Oral Presentation的工作 主要解决RGB的3D human pose estimat
  • 虚拟机中安装win7报错【解决方案】

    问题 You have configured this virtual machine to use a 64 bit guest operating system However 64 bit operation is not possi
  • 图像数据集整理汇总(包含ImageNet、旷视、VOC、COCO等等)

    链接 https pan baidu com s 1t8mQQzXJvxSA8GcCXbNIhA 提取码 pys8 ImageNet https image net org download php 旷视CrowdHuamn数据集 http
  • Kafka3.0.0版本——增加副本因子

    目录 一 服务器信息 二 启动zookeeper和kafka集群 2 1 先启动zookeeper集群 2 2 再启动kafka集群 三 增加副本因子 3 1 增加副本因子的概述 3 2 增加副本因子的示例 3 2 1 创建topic 主题
  • 计算机网络 谢希仁 课后习题部分答案

    试说明IP地址与硬件地址的区别 为什么要使用这两种不同的地址 解 IP地址放在IP数据报的首部 硬件地址则放MAC帧的首部 在网络层和网络层以上使用IP地址 数据链路层及以下使用硬件地址 IP 地址就是给每个连接在因特网上的主机 或路由器
  • aspose操作文档

    操作aspose版本 aspose words 21 4 官网下载地址 https releases aspose com words java 问题 1 每次操作文档的时候都要重新保存 不然文件损坏 打开的文件就是乱码的 记录一些简单的功
  • RobotFramework环境配置七:多浏览器兼容性测试(1)

    多浏览器兼容性测试 1 RIDE已经支持多浏览器兼容性测试 例如 firefox ie chrome safari 但是 项目要求支持360极速和360安全浏览器 所以 我们需要增加代码让RIDE识别 其他浏览器类似 本地浏览器 说明 基于
  • 电源完整性的很好的解释

    电源和地层大块平面间构成了谐振腔 高速数字信号经过时 犹如快艇在湖面掀起一阵波浪 电源地之间电压起了波动 既然是谐振 机械上叫共振 就要固有频率 这个固有频率是与电源和地平面的形状 中间的介质参数 介电常数 损耗 厚度 有关系的 一旦这些参
  • 1、Django使用Bootstrap

    1 Django使用Bootstrap 学习一段时间Django后 想写一个博客 CSS框架使用Bootstrap 但是将bootstrap css源文件拷贝到到app static css下后 发现无任何效果 百思不得其解 郁闷了一天后
  • 数据结构知识整理

    标题2020 1024 996 你品 你细品 堆 栈 队列 大根堆小根堆 大根堆 堆顶的元素是最大的 越往下越小 小根堆 堆顶的元素是最小的 越往下越大 大根堆小根堆的声明 priority queue
  • 通过超链接 解析zip压缩包 中的 xml 内容

    import com alibaba fastjson JSON import com api zp documentexchange OkHttp import okhttp3 OkHttpClient import okhttp3 Re
  • Eigen与cuda兼容问题解决

    1 报错 usr include eigen3 Eigen src Core arch CUDA Half h 596 error no suitable constructor exists to convert from float t
  • 源码解析(一):Spring JDBC如何实现多数据源

    Spring JDBC如何实现多数据源 背景 类介绍 bean初始化设置属性 1 AbstractRoutingDataSource 属性 2 初始化设置 设置当前lookupKey 1 获取 lookupKey 2 找到目标数据源 获取连
  • kali自动化渗透神器websploit模块介绍

    websploit 安装websploit root kali2 apt get install websploit root kali2 websploit db d8b db d88888b d8888b d8888 d8888b db
  • Linux操作系统下如何查看磁盘的queue_depth(队列深度),安排!

    Linux中的queue depth 队列深度 可以用lsscsi查看 lsscsi l 0 0 1 0 disk FUJITSU MAM3184MP 0105 dev sda state running queue depth 16 sc
  • Eureka服务注册与发现

    Eureka服务注册与发现 1 什么是Eureka 2 Eureka原理 3 对比Zookeeper 1 什么是Eureka Eureka是Netflix的子模块 Eureka是一个基于Rest的服务 用于定位服务 以实现云端中间层服务发现