dubbo+zookeeper与 eureka的区别
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的区别相关推荐
- ZooKeeper与Eureka的区别
我们来看Zookeeper与Eureka的一个区别,在这里准备了一个表格,在这里通过对比项,来对比Zookeeper与Eureka的一个区别,我们先从CAP来看Zookeeper与Eureka的一个区 ...
- 微服务四个常见问题,以及SpringCloud Netflix和SpringCloud Alibaba和Apache Dubbo zookeeper区别
微服务的四个问题 1.服务很多,客户端该怎么访问? 2.这么多服务? 服务之间如何通信? 3.这么多服务? 如何治理? 4.服务挂了怎么办? 提出三种解决方案 1.spring cloud NetFl ...
- 注册中心对比Zookeeper、Eureka、Nacos、Consul和Etcd
一.注册中心概念 1.1 什么是注册中心 注册中心主要有三种角色: 服务提供者(RPC Server):在启动时,向 Registry 注册自身服务,并向 Registry 定期发送心跳汇报存活状态. ...
- 分布式系统设计原理与方案Dubbo+Zookeeper+Spring整合
2019独角兽企业重金招聘Python工程师标准>>> 一直在思考分布式系统设计的问题,业务对象原封不动的情况下部署在客户端和服务器端,可以根据配置文件选择是连接服务器还是连接本地的 ...
- SpringBoot + Dubbo + Zookeeper搭建一个简单的分布式服务
本文使用SpringBoot + Dubbo + Zookeeper 来搭建一个简单的分布式服务 文章目录 dubbo-spring-boot-starter 如何发布 Dubbo 服务 如何消费 D ...
- ZooKeeper与Eureka作为注册中心的比较
本文来说下ZooKeeper与Eureka作为注册中心的比较 文章目录 CAP定理 Consistency 一致性 Availability 可用性 Partition Tolerance分区容错性 ...
- spring boot 整合Dubbo/Zookeeper
spring boot 整合Dubbo/Zookeeper 只是一个简单的整合demo,只做思路分析叙述,具体功能不做描述. 一.技术介绍 •ZooKeeper ZooKeeper 是一个分布式的,开 ...
- 一文搞懂注册中心 zookeeper 和 eureka 中的CP和 AP
作者:胖大星 cnblogs.com/wei57960/p/12260228.html 前言 在分布式架构中往往伴随CAP的理论.因为分布式的架构,不再使用传统的单机架构,多机为了提供可靠服务所以需要 ...
- Dubbo+zookeeper
Dubbo+zookeeper dubbo中文官方文档:https://dubbo.gitbooks.io/dubbo-user-book/content/preface/background.htm ...
最新文章
- 阿里巴巴开源的 Blink 实时计算框架真香
- Devexpress 重新编译以后 重新生成DEMO
- 【五线谱】Sibelius 7.5.1 打谱软件安装 ( 软件下载 | 软件安装 )
- kail利用msf工具对ms17-010(永恒之蓝)漏洞入侵渗透Win7
- Mongodb3.4 复制集及分片配置
- 4mysql_12-4mysql 查询
- 凝思系统机器名怎么查看_机器视觉系统|工业零件生产效率和检测效率不匹配怎么办?...
- MatConvnet工具箱文档翻译理解三
- python把英语句子成分字母_英语句子成分
- 彻底理解RxJS里面的Observable 、Observer 、Subject
- oracle归档默认路径,更改ORACLE归档路径及归档模式
- 一个完整的Installshield安装程序实例
- DIY钢铁侠电动开合
- python实现多重排序(多级排序)
- 机器学习——K近邻算法及乳腺癌检测分类
- 计算机网络:奈氏准则与香农定理
- Java+MySql+BootStrap开源项目学生宿舍管理系统
- 安卓开发之模拟智能家电实例(IO写法)
- 华为手机日历同步win10日历
- windows7旗舰版32位JAVA安装_Windows7旗舰版32位Oracle10g的安装和卸载
热门文章
- svn提交提示服务器文件被锁,svn被锁定怎么解决-svn被锁定的解决方法 - 河东软件园...
- python类的构造方法是_Python类中属性和构造方法的区别?
- phpstorm统计程序行数_Python 实现代码行数统计
- linux ftp 查找文件,Linux shell ftp命令根据文件日期下载文件的方法
- java jexl_一种表达式语言的解析引擎JEXL简单使用
- python的django介绍_django Django简介 - 刘江的django教程
- leetcode刷题:合并两个有序链表
- C++安全方向(二):2.5 Base58_比特币钱包地址_算法分析
- 用集合return多个值_十五个常用的 Laravel 集合(Collection)
- ncl 添加点shp文件_基于Arcgis绘制采样点地图