Eureka 与Zookeeper 的区别,Eureka相较于Zookeeper好在哪?

传统的ACID
  • A(Atomicity) 原子性
  • C(Consistency) 一致性
  • I (Isolation)独立性
  • D(Durability)持久性

关系型数据库(MySQL,Oracle,SqlServer)

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

NOSQL (redis/mongdb)

任何一个分布式系统最多满足两个

CAP理论的核心是:一个分布式系统不可能同时很好的满足一致性,可用性和分区容错性这三个需求,因此,根据CAP原理将NoSQL数据库分成了满足CA原则、满足CP原则和满足AP原则则三大类:

  • CA 单点集群,满足一致性,可用性的系统,通常在可扩展性上不太强大
  • CP 原则 满足一致性,分区容忍必的系统,通常性能不是特别高
  • AP 满足可用性,分区容忍性的系统,通常可能对一致性要求低一些
    在这里插入图片描述
作为服务注册中心,Eureka比Zookeeper好在哪里

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

  • Zookeeper保证的是CP,
  • Eureka则是AP
  • Zookeeper保证CP
    当向注册中心查询服务列表时,我们可以容忍注册中心返回的是几分钟以前的注册信息,但不能接受服务直接down掉不可用。也就是说,服务注册功能对可用性的要求要高于一致性。但是zk会出现这样一种情况,当master节点因为网络故障与其他节点失去联系时,剩余节点会重新进行leader选举。问题在于,选举leader的时间太长,30 ~ 120s, 且选举期间整个zk集群都是不可用的,这就导致在选举期间注册服务瘫痪。在云部署的环境下,因网络问题使得zk集群失去master节点是较大概率会发生的事,虽然服务能够最终恢复,但是漫长的选举时间导致的注册长期不可用是不能容忍的。
  • Eureka保证AP
    Eureka看明白了这一点,因此在设计时就优先保证可用性。Eureka各个节点都是平等的,几个节点挂掉不会影响正常节点的工作,剩余的节点依然可以提供注册和查询服务。而Eureka的客户端在向某个Eureka注册或时如果发现连接失败,则会自动切换至其它节点,只要有一台Eureka还在,就能保证注册服务可用(保证可用性),只不过查到的信息可能不是最新的(不保证强一致性)。除此之外,Eureka还有一种自我保护机制,如果在15分钟内超过85%的节点都没有正常的心跳,那么Eureka就认为客户端与注册中心出现了网络故障,此时会出现以下几种情况:
  1. Eureka不再从注册列表中移除因为长时间没收到心跳而应该过期的服务
  2. Eureka仍然能够接受新服务的注册和查询请求,但是不会被同步到其它节点上(即保证当前节点依然可用)
  3. 当网络稳定时,当前实例新的注册信息会被同步到其它节点中

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

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

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

相关文章

断网情况下安装python_断网环境下利用pip安装Python离线安装包

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。这几天搞Windows离线断网环境下安装Python包,配置环境,各种坑!做个记录,供以后查询吧。# 生产环境 windows 7# python 2.7.9# pip 1.5.2友情提示…

计算机英语词组,计算机专业英语词组.doc

Integrated circuit 集成电路Central controller 中央控制器Trigonometry function 三角函数Square root 平方根Floating point 浮点数Real number 实数Logic operation 逻辑运算Superscalar computer 超级计算机Hard disk drive 硬盘驱动器Personal computer 个人计算机Floppy…

python 整数输出 d f_如何将数字(10,11,12,13,14,15)分配给Python 3中的字母(A,B,C,D,E,F)?...

您可以在代码中添加更多行来执行此操作:首先创建两个带有字符的列表,一个带有要映射的整数,然后从那些创建dict:list_1["A","B","C","D","E","F"]list_2[10,11,12,1…

如何将Springboot项目成功部署到linux服务器上?

springboot的jar包方式 idea默认就是jar打包方式所以直接使用maven工具按照步骤点击就可以直接打包ps:打包前你的数据库相关的连接信息要记得修改,不能再用本地的了 第二步:Maven clean :清除编译后的目录,默认是target目录 [IN…

2018年3月计算机二级考试题,2018年3月计算机二级考试Access综合试题十

2018年3月计算机等级考试即将开始,小编在这里为考生们整理了2018年3月计算机二级考试Access综合试题,希望能帮到大家,想了解更多资讯,请关注出国留学网的及时更新哦。2018年3月计算机二级考试Access综合试题十(1)要将“选课成绩”…

sqldataadapter.fill 索引超出了数组界限_小学生学习C++||第十五节 数组

存储数据的方式第一种,变量:存放1个学生的数学成绩可以定义1个变量存放,那么如果想要存放100个学生的数学成绩应该如何存储呢?第二种,数组:引入数组概念:可以用来表达类型相同的元素的集合&…

计算机组组内培训记录,计算机教研组活动记录.doc

计算机教研组活动记录PAGE \* MERGEFORMAT 3计算机基础教研组活动记录活动时间2017年10月17日参加人员:田飞, 许丽, 张刚, 夏丽, 刘璐, 苑瑜, 王梦, 靳双正, 梁宇, 常喜活动主题如何提高计算机课程教学质量活动过程摘要活动记录:田飞——今天我们就如何提…

数据字典在sga的哪一个组件中缓存_【赵强老师】Oracle数据库的内存结构

首先,我们通过一张图片来了解一下Oracle数据库的内存结构,如下:每个数据库实例有两个关联的内存结构—系统全局区(SGA),程序全局区(PGA)。系统全局(SGA):一组共享的内存结构(称为SGA 组件),其中包含一个OracleDB 实例的…

springboot+shiro:ShiroConfiguration配置

1.EhCacheManager EhCache缓存管理也可将shiro session存入redis中 Beanpublic EhCacheManager getEhCacheManager() {EhCacheManager em new EhCacheManager();em.setCacheManagerConfigFile("classpath:ehcache-shiro.xml");return em;}ehcache-shiro.xml中的配置…

幼师计算机课是上什么,幼师面试 鱼在天空飞,鸟在水里游是小班课程,还是中班,大班的课程...

大班第一课时教学目标:1、学会生字“鸟、儿、鱼、飞”,读准音,认清形,了解义,能正确书写.2、看图感知画面内容,练习说话.3、拓展认识各种鸟,鱼;激发学生喜爱小动物的的感情.教学重点:学会“鸟、儿、飞、鱼”四个生字,读准字音,了解字义,能正确…

python关键词大全_Python 批量获取Baidu关键词的排名并入库

1.[代码][Python]代码#-*- coding: UTF-8 -*-#Python UTF-8 抓取百度关键词V1.0#key.txt是抓取文件配置#author PHPer.yanggmail.comimport cgi,urllib #URL读取import re #正则匹配import MySQLdb #MySQLimport datetime #时间#import time,thread #多线程"""M…

mysql出现多线程操作同一个表的情况,应该怎么办?

1、对于MySQL来说,有三种锁的级别:页级、表级、行级。 页级的典型代表引擎为BDB。 表级的典型代表引擎为MyISAM,MEMORY以及很久以前的ISAM。 行级的典型代表引擎为INNODB。 2、我们实际应用中用的最多的就是行锁。 行级锁的优点如下: 1&…

计算机黑屏策略,小黑w7系统诊断策略服务已被禁用的还原教程

小黑w7家庭版开机速度快,是入门级小黑w7系统。据调查不少用户在使用中都碰到了诊断策略服务已被禁用的问题。面对小黑w7系统诊断策略服务已被禁用这样的小问题,我们该如何解决呢?不经常使用电脑的朋友对于小黑w7系统诊断策略服务已被禁用的问…

python中的date的含义_python中date、datetime、string的相互转换

import datetimeimport timestring转datetimestr 2012-11-19date_time datetime.datetime.strptime(str,%Y-%m-%d)date_timedatetime.datetime(2012,11,19,0,0)datetime转stringdate_time.strftime(%Y-%m-%d)2012-11-19datetime转时间戳time_time time.mktime(date_time.tim…

overline css,CSS text-decoration-line 属性

定义和用法text-decoration-line 属性规定文本修饰要使用的线条类型。注意:您也可以使用 text-decoration 属性设置 text-decoration-line。text-decoration 属性是 text-decoration-line、text-decoration-style 和 text-decoration-color 属性的速记属性。注意&am…

npoi word在试图打开文件时遇到错误_【技巧】word在试图打开文件时遇到错误

问题使用Word的时候遇到了一个问题,如下图所示解决方案情况一:修改文件后缀导致打开错误如果源文件不是“.doc”或者“.docx”格式结尾,通过修改文件后缀的方式修改为“.doc”或者“.docx”格式。在打开文件的时候出现上述警告时,…

空间服务器有问题是系统问题吗,服务器空间租用两个主要问题要留意

只要是建设网站,那么服务器空间租用都是不能缺少的。而且这样的一种租赁模式都是长期的,所以我们需要考虑到租用的整体性价比,这样后续的应用才能有所保障。而且我们只要是建设了网站,服务器和空间一般都是不会更换掉的&#xff0…

面试让HR都能听懂的MySQL锁机制,欢声笑语中搞懂MySQL锁

腾讯云数据库负责人林晓斌说过:“我们面试MySQL同事时只考察两点,索引和锁”。言简意赅,MySQL锁的重要性不言而喻。 本文通过同事“侨总”的一场面试,带你通俗易懂的掌握MySQL各种锁机制,希望可以帮到你!近…

浅谈python使用多态跟不用多态的区别_python 多态和 super 用法

python 中的多态实现非常简单,只要是在子类中实现和父类同名的方法,便能实现多态,如果想在子类中调用父类的方法,有多种方法,但是当涉及菱形继承等问题是,super 就成为了比较好的解决方案。普通继承对于比较…

战地2服务器怎么虚拟人数,战地2怎么修改作战人数?

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼echo *****************************************************************************************echo AIDefault.ai ****************************************************************************echo ********************…