2019独角兽企业重金招聘Python工程师标准>>>

CAP

CAP 原则指的是在一个分布式系统中,Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可兼得

在分布式架构里, P必须有

 Zookeeper保证C P

当向注册中心查询服务列表时,我们可以容忍注册中心返回的是几分钟以前的注册信息,但不能接受服务直接down掉不可用。也就是说,服务注册功能对可用性的要求要高于一致性。但是zk会出现这样一种情况,当master节点因为网络故障与其他节点失去联系时,剩余节点会重新进行leader选举。问题在于,选举leader的时间太长,30 ~ 120s, 且选举期间整个zk集群都是不可用的,这就导致在选举期间注册服务瘫痪。在云部署的环境下,因网络问题使得zk集群失去master节点是较大概率会发生的事,虽然服务能够最终恢复,但是漫长的选举时间导致的注册长期不可用是不能容忍的。

Eureka保证A P

Eureka看明白了这一点,因此在设计时就优先保证可用性。Eureka各个节点都是平等的,几个节点挂掉不会影响正常节点的工作,剩余的节点依然可以提供注册和查询服务。而Eureka的客户端在向某个Eureka注册或如果发现连接失败,则会自动切换至其它节点,只要有一台Eureka还在,就能保证注册服务可用(保证可用性),只不过查到的信息可能不是最新的(不保证强一致性)。除此之外,Eureka还有一种自我保护机制,如果在15分钟内超过85%的节点都没有正常的心跳,那么Eureka就认为客户端与注册中心出现了网络故障,此时会出现以下几种情况:

1. Eureka不再从注册列表中移除因为长时间没收到心跳而应该过期的服务

2. Eureka仍然能够接受新服务的注册和查询请求,但是不会被同步到其它节点上(即保证当前节点依然可用)

3. 当网络稳定时,当前实例新的注册信息会被同步到其它节点中

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

转载于:https://my.oschina.net/u/2935389/blog/3039669

dubbo+zookeeper与 eureka的区别相关推荐

  1. ZooKeeper与Eureka的区别

    我们来看Zookeeper与Eureka的一个区别,在这里准备了一个表格,在这里通过对比项,来对比Zookeeper与Eureka的一个区别,我们先从CAP来看Zookeeper与Eureka的一个区 ...

  2. 微服务四个常见问题,以及SpringCloud Netflix和SpringCloud Alibaba和Apache Dubbo zookeeper区别

    微服务的四个问题 1.服务很多,客户端该怎么访问? 2.这么多服务? 服务之间如何通信? 3.这么多服务? 如何治理? 4.服务挂了怎么办? 提出三种解决方案 1.spring cloud NetFl ...

  3. 注册中心对比Zookeeper、Eureka、Nacos、Consul和Etcd

    一.注册中心概念 1.1 什么是注册中心 注册中心主要有三种角色: 服务提供者(RPC Server):在启动时,向 Registry 注册自身服务,并向 Registry 定期发送心跳汇报存活状态. ...

  4. 分布式系统设计原理与方案Dubbo+Zookeeper+Spring整合

    2019独角兽企业重金招聘Python工程师标准>>> 一直在思考分布式系统设计的问题,业务对象原封不动的情况下部署在客户端和服务器端,可以根据配置文件选择是连接服务器还是连接本地的 ...

  5. SpringBoot + Dubbo + Zookeeper搭建一个简单的分布式服务

    本文使用SpringBoot + Dubbo + Zookeeper 来搭建一个简单的分布式服务 文章目录 dubbo-spring-boot-starter 如何发布 Dubbo 服务 如何消费 D ...

  6. ZooKeeper与Eureka作为注册中心的比较

    本文来说下ZooKeeper与Eureka作为注册中心的比较 文章目录 CAP定理 Consistency 一致性 Availability 可用性 Partition Tolerance分区容错性 ...

  7. spring boot 整合Dubbo/Zookeeper

    spring boot 整合Dubbo/Zookeeper 只是一个简单的整合demo,只做思路分析叙述,具体功能不做描述. 一.技术介绍 •ZooKeeper ZooKeeper 是一个分布式的,开 ...

  8. 一文搞懂注册中心 zookeeper 和 eureka 中的CP和 AP

    作者:胖大星 cnblogs.com/wei57960/p/12260228.html 前言 在分布式架构中往往伴随CAP的理论.因为分布式的架构,不再使用传统的单机架构,多机为了提供可靠服务所以需要 ...

  9. Dubbo+zookeeper

    Dubbo+zookeeper dubbo中文官方文档:https://dubbo.gitbooks.io/dubbo-user-book/content/preface/background.htm ...

最新文章

  1. 阿里巴巴开源的 Blink 实时计算框架真香
  2. Devexpress 重新编译以后 重新生成DEMO
  3. 【五线谱】Sibelius 7.5.1 打谱软件安装 ( 软件下载 | 软件安装 )
  4. kail利用msf工具对ms17-010(永恒之蓝)漏洞入侵渗透Win7
  5. Mongodb3.4 复制集及分片配置
  6. 4mysql_12-4mysql 查询
  7. 凝思系统机器名怎么查看_机器视觉系统|工业零件生产效率和检测效率不匹配怎么办?...
  8. MatConvnet工具箱文档翻译理解三
  9. python把英语句子成分字母_英语句子成分
  10. 彻底理解RxJS里面的Observable 、Observer 、Subject
  11. oracle归档默认路径,更改ORACLE归档路径及归档模式
  12. 一个完整的Installshield安装程序实例
  13. DIY钢铁侠电动开合
  14. python实现多重排序(多级排序)
  15. 机器学习——K近邻算法及乳腺癌检测分类
  16. 计算机网络:奈氏准则与香农定理
  17. Java+MySql+BootStrap开源项目学生宿舍管理系统
  18. 安卓开发之模拟智能家电实例(IO写法)
  19. 华为手机日历同步win10日历
  20. windows7旗舰版32位JAVA安装_Windows7旗舰版32位Oracle10g的安装和卸载

热门文章

  1. svn提交提示服务器文件被锁,svn被锁定怎么解决-svn被锁定的解决方法 - 河东软件园...
  2. python类的构造方法是_Python类中属性和构造方法的区别?
  3. phpstorm统计程序行数_Python 实现代码行数统计
  4. linux ftp 查找文件,Linux shell ftp命令根据文件日期下载文件的方法
  5. java jexl_一种表达式语言的解析引擎JEXL简单使用
  6. python的django介绍_django Django简介 - 刘江的django教程
  7. leetcode刷题:合并两个有序链表
  8. C++安全方向(二):2.5 Base58_比特币钱包地址_算法分析
  9. 用集合return多个值_十五个常用的 Laravel 集合(Collection)
  10. ncl 添加点shp文件_基于Arcgis绘制采样点地图