当前位置: 首页 > news >正文

Eureka与Zookeeper的区别

        著名的CAP 理论指出,一个分布式系统不可能同时满足 C( 一致性 ) A( 可用性 ) P( 分区容错性 )
由于分区容错性在是分布式系统中必须要保证的,因此我们只能在 A C 之间进行权衡,在此 Zookeeper
保证的是 CP, Eureka 则是 AP

Zookeeper保证数据一致性和分区容错性

        在ZooKeeper 中,当 master 节点因为网络故障与其他节点失去联系时,剩余节点会重新进行
leader 选举,但是问题在于,选举 leader 需要一定时间 , 且选举期间整个 ZooKeeper 集群都是不可用
的,这就导致在选举期间注册服务瘫痪。在云部署的环境下,因网络问题使得 ZooKeeper 集群失去
master 节点是大概率事件,虽然服务最终能够恢复,但是在选举时间内导致服务注册长期不可用是难以容忍的。

Eureka保证可用性和分区容错性

        Eureka优先保证可用性, Eureka 各个节点是平等的,某几个节点挂掉不会影响正常节点的工作, 剩余的节点依然可以提供注册和查询服务。而Eureka 的客户端在向某个 Eureka 注册或时如果发现连接 失败,则会自动切换至其它节点,只要有一台Eureka 还在,就能保证注册服务可用 ( 保证可用性 ) ,只不 过查到的信息可能不是最新的( 不保证强一致性 )
        所以Eureka 在网络故障导致部分节点失去联系的情况下,只要有一个节点可用,那么注册和查询服务就 可以正常使用,而不会像zookeeper 那样使整个注册服务瘫痪, Eureka 优先保证了可用性。

        总结

Eureka会造成短暂的数据不一致性,这是可以容忍的,但是zookeeper在主服务器down的时候,要选取新的主服务器,造成的时间导致服务注册长期不可用时难以容忍的,所以推荐使用Eureka,再加上Eureka集成Spring Cloud是十分方便的,所以推荐大家使用Eureka作为服务注册中心。

http://www.lryc.cn/news/66819.html

相关文章:

  • 顺序表和链表的各种代码实现
  • C# 介绍三种不同组件创建PDF文档的方式
  • 极简面试题 --- Redis
  • 可视化图表API格式要求有哪些?Sugar BI详细代码示例(4)
  • 学习vue(可与知乎合并)
  • 【UEFI实战】Linux下如何解析ACPI表
  • Java-Redis持久化之RDB操作
  • 信号signal编程测试
  • Linux学习记录——이십삼 进程信号(2)
  • Revit中如何创建曲面嵌板及一键成板
  • STM32F4_DHT11数字温湿度传感器
  • WiFi(Wireless Fidelity)基础(十一)
  • 操作系统—— 精髓与设计原理--期末复习
  • 每天一道算法练习题--Day21 第一章 --算法专题 --- ----------位运算
  • D1. LuoTianyi and the Floating Islands (Easy Version)(树形dp)
  • rk3588移植ubuntu server
  • 如何更好地刷力扣
  • 上采样和下采样
  • 小猪,信息论与我们的生活
  • 【鸿蒙应用ArkTS开发系列】- http网络库使用讲解和封装
  • 【Java零基础入门篇】第 ⑥ 期 - 异常处理
  • 计算职工工资
  • 2019年上半年软件设计师下午试题
  • IS200TPROH1BCB用于工业应用和电力分配等。高压型隔离开关用于变电站
  • 【MySql】数据库 select 进阶
  • CVPR 2023 | VoxelNeXt实现全稀疏3D检测跟踪,还能结合Seg Anything
  • 本地使用3台centos7虚拟机搭建K8S集群教程
  • NVIDIA CUDA驱动安装
  • python 从excel中获取需要执行的用例
  • Web3中文|乱花渐欲meme人眼,BRC-20总市值逼近10亿美元