zk-zookeeper 除了选举,还有什么时候会有多个提议者

问题描述

zookeeper 除了选举,还有什么时候会有多个提议者

如果 zookeeper 三个节点:z1,z2,z3。
a客户端连接z1
b客户端连接z2

1.是否会出现a 看到的结果与b看到的结果不一致,某一时刻。(zk是最终一致性的)
2.a客户端的操作与b客户端的操作,是不是可以认为是两个提议者
3.如果有多个提议者的话,是不是只有leader才能发送提议 ?

解决方案

ZooKeeper是以Fast Paxos算法为基础的,Paxos 算法存在活锁的问题,即当有多个proposer交错提交时,有可能互相排斥导致没有一个proposer能提交成功,而Fast Paxos作了一些优化,通过选举产生一个leader,只有leader才能提交proposer,具体算法可见Fast Paxos。

解决方案二:

Zookeeper入门指南

时间: 2024-09-20 06:11:27

zk-zookeeper 除了选举,还有什么时候会有多个提议者的相关文章

zookeeper源码分析之leader选举

zookeeper提供顺序一致性.原子性.统一视图.可靠性保证服务zookeeper使用的是zab(atomic broadcast protocol)协议而非paxos协议zookeeper能处理并发地处理多个客户端的写请求,并且以FIFO顺序commit这些写操作,zab采用了一个事务ID来实现事务的全局有序性,在Zab协议的实现时,分为三个阶段:1. Leader Election2. Recovery Phase3. Broadcast Phase 今天就先分析选举算法的源码实现 zoo

为什么不使用ZooKeeper构建云平台发现服务?

本文作者通过ZooKeeper与Eureka作为 Service发现服务(注:WebServices 体系中的UDDI就是个发现服务)的优劣对比,分享了Knewton在云计算平台部署服务的经验.本文虽然略显偏激,但是看得出Knewton在云平台方面是非常有经验的,这篇文章从实践角度出发分别从云平台特点.CAP原理以及运维三个方面对比了ZooKeeper与Eureka两个系统作为发布服务的优劣,并提出了在云平台构建发现服务的方法论. 背景 很多公司选择使用 ZooKeeper作为Service发现

ZooKeeper一二事 - 搭建ZooKeeper伪分布式及正式集群 提供集群服务

集群真是好好玩,最近一段时间天天搞集群,redis缓存服务集群啦,solr搜索服务集群啦,,,巴拉巴拉 今天说说zookeeper,之前搭建了一个redis集群,用了6台机子,有些朋友电脑跑步起来,有点卡,那这里主要说说伪分布式的集群,正式版的集群需要3台机子,我就一带而过说一说,搭建起来也是非常简单的 先来说说Zookeeper 什么是Zookeeper呢,顾名思义,动物园管理员嘛,什么hadoop大象啦,hive蜜蜂啦,pig小猪啦,都是用这货来管的,就是大数据Hadoop里面的嘛~ (题外

【转载】对 Zookeeper 的一些分析

1. zookeeper 不是为高可用性设计的  由于要跨机房容灾,很多系统实际上是需要跨机房部署的.出于性价比的考虑我们通常会让多个机房同时工作,而不会搭建 N 倍的冗余.也就是说单个机房肯定撑不住全流量(你能设想谷歌在全球只剩下一个机房在干活吗).由于 zookeeper 集群只能有一个 master ,因此一旦机房之间连接出现故障,zookeeper master 就只能照顾一个机房,其他机房运行的业务模块由于没有 master 都只能停掉.于是所有流量集中到有 master 的那个机房,

ZooKeeper客户端事件串行化处理

为了提升系统的性能,进一步提高系统的吞吐能力,最近公司很多系统都在进行异步化改造.在异步化改造的过程中,肯定会比以前碰到更多的多线程问题,上周就碰到ZooKeeper客户端异步化过程中的一个死锁问题,这里说明下. 通常ZooKeeper对于同一个API,提供了同步和异步两种调用方式. 同步接口很容易理解,使用方法如下: ZooKeeper zk = new ZooKeeper(...); List children = zk.getChildren( path, true ); 异步接口就相对复

《ZooKeeper:分布式过程协同技术详解》——第1章 简介1.1 ZooKeeper的使命

第一部分 ZooKeeper的概念和基础这一部分适合任何对ZooKeeper感兴趣的读者,该部分介绍ZooKeeper所处理的问题,以及在ZooKeeper的设计中的权衡取舍. 第1章 简介 在计算机诞生之后很长的一段时间里,一个应用服务是在一个独立的单处理器计算机上运行一段程序.时至今日,应用服务已经发生了很大的变化.在大数据和云计算盛行的今天,应用服务由很多个独立的程序组成,这些独立的程序则运行在形形色色.千变万化的一组计算机上.相对于开发在一台计算机上运行的单个程序,如何让一个应用中多个独

zookeeker如何解决HBase单节点故障

HBase架构是一个Master与多个RegionServer,Master负责维护Region等一些工作,但是客户端访问Hbase并不需要通过Master.ZK通过监控选举Master来保证集群始终有一个可用的Master,即访问Master需要通过ZK,当ZK发现Master挂掉之后,会从其他机器中进行选举产出新的Master提供服务. Zookeeper作用 通过选举,保证任何时候,集群中只有一个master,Master与RegionServers 启动时会向ZooKeeper注册 存贮

从Storm和Spark 学习流式实时分布式计算的设计

0. 背景 最近我在做流式实时分布式计算系统的架构设计,而正好又要参加CSDN博文大赛的决赛.本来想就写Spark源码分析的文章吧.但是又想毕竟是决赛,要拿出一些自己的干货出来,仅仅是源码分析貌似分量不够.因此,我将最近一直在做的系统架构的思路整理出来,形成此文.为什么要参考Storm和Spark,因为没有参照效果可能不会太好,尤其是对于Storm和Spark由了解的同学来说,可能通过对比,更能体会到每个具体实现背后的意义. 本文对流式系统出现的背景,特点,数据HA,服务HA,节点间和计算逻辑间

【Kafka源码】KafkaController启动过程

[TOC] 之前聊过了很多Kafka启动过程中的一些加载内容,也知道了broker可以分为很多的partition,每个partition内部也可以分为leader和follower,主从之间有数据的复制.那么这么多partition是谁在管理?broker内部有没有主从之分?这就是本文的主角,KafkaController,本文将细细道来. 一.入口 KafkaController的启动入口同样很简洁,在KafkaServer的start方法中. / start kafka controlle