(27)zookeeper的集群角色分配原理

1.zookeeper集群机制

半数机制:集群中半数以上机器存活,集群可用。

zookeeper适合装在奇数台机器上。

Zookeeper集群的节点角色:  Leader 和  follower  (Observer)

只要集群中有半数以上节点存活,集群就能提供正常服务。

2.zookeeper的集群结构

为了维持高可靠性,zookeeper集群内部有多个节点。所有节点中只有一个会成为leader,其余的角色都是follower。zookeeper的配置文件中需要配置的内容包括集群中有哪些机器以及每台机器的id(选举leader时投票的依据)。而哪台机器是leader(角色分配)并不写在配置文件里,而是由zookeeper内部的自动选举机制使用zab算法(paxos算法的简化版)投票选举产生。

选举出leader后,客户端无论连的是哪台服务器,最终的信息交互都会是和leader进行,leader会实时更新各个follower中的信息,做到整个集群中机器的信息一致。

由于leader每次要更新所有的follower,zookeeper不适合集群很大,更新频繁且对节点一致性要求很严格的场景。

原文地址:https://www.cnblogs.com/paradis/p/11371613.html

时间: 2024-10-14 20:33:58

(27)zookeeper的集群角色分配原理的相关文章

zookeeper+KAFKA 集群搭建

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件.它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护.域名服务.分布式同步.集群管理等. 因为Kafka集群是把状态信息保存在Zookeeper中的,并且Kafka的动态扩容是通过Zookeeper来实现的,所以需要优先搭建Zookeerper集群,建立分布式状态管理.开始准备环境,搭建集群: zookeeper是基于Java环境开发

初始zookeeper与集群搭建实例

zookeeper是什么 Zookeeper,一种分布式应用的协作服务,是Google的Chubby一个开源的实现,是Hadoop的分布式协调服务,它包含一个简单的原语集,应用于分布式应用的协作服务,使得分布式应用可以基于这些接口实现诸如同步.配置维护和分集群或者命名的服务. zookeeper是一个由多个service组成的集群,一个leader,多个follower,每个server保存一份数据部分,全局数据一致,分布式读写,更新请求转发由leader实施. 更新请求顺序进行,来自同一个cl

Hadoop初学指南(10)--ZooKeeper的集群安装和操作

本文简单介绍了ZooKeeper的基本知识. (1)概述 ①什么是ZooKeeper? Zookeeper 是 Google 的 Chubby一个开源的实现,是 Hadoop 的分布式协调服务 它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等 ②Zookeeper的角色 ③为什么使用Zookeeper? 大部分分布式应用需要一个主控.协调器或控制器来管理物理分布的子进程(如资源.任务分配等) 目前,大部分应用需要开发私有的协调程序,缺乏一个通用的机制 协调程序的

zookeeper的集群安装

zookeeper是针对大型分布式系统的高可靠的协调系统.由此,我们可 知,zookeeper是个协调系统,它的作用对象是分布式系统.那么,为什么分 布式系统需要一个协调系统呢?原因如下: 开发分布式系统是件灰常困难复杂的事情,其中的困难主要体现在分布式 系统的"部分失败"."部分失败"是指信息在网络的两个节点之间传送的时 候,如果网络出现了故障,发送者无法知道接收者是否收到了这个信息,而且这 中故障的原因很复杂,接收者可能在出现网络错误之前已经接收到了信息,也可

hbase 学习(十二)集群间备份原理

集群建备份,它是master/slaves结构式的备份,由master推送,这样更容易跟踪现在备份到哪里了,况且region server是都有自己的WAL 和HLog日志,它就像mysql的主从备份结构一样,只有一个日志来跟踪.一个master集群可以向多个slave集群推送,收到推送的集群会覆盖它本地的edits日志. 这个备份操作是异步的,这意味着,有时候他们的连接可能是断开的,master的变化不会马上反应到slave当中.备份个格式在设计上是和mysql的statement-based

Zookeeper服务器集群的搭建与操作

ZooKeeper 作用:Zookeeper 可以用来保证数据在zk集群之间的数据的事务性一致(原子操作). 介绍:Zookeeper 是 Google 的 Chubby一个开源的实现,是 Hadoop 的分布式协调服务.  它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等. 特性:简单的.富有表现力的.具有高可用性.采用松耦合交互方式.是一个资源库. 如何搭建ZooKeeper服务器集群 2.1 ZooKeeper服务器集群规模不小于3个节点,要求各服务器之间

zookeeper在集群负载均衡中的应用

zookeeper本身是不提供负载均衡的策略,需要自己来实现,所以这里确切的说,是在负载均衡中应用到了zookeeper做集群的协调. 对于HTTP请求的负载均衡,成熟的解决方案是Nginx(或Haproxy) +keepalived.其中Niginx负责代理HTTP请求,通过某种均衡策略访问集群中的服务器,keepalived负责检测集群中的服务器运行情况(有故障的机器移除,机器恢复工作后重新加入) 而对于TCP层的负载均衡,比如用Apache Mina做的网络通信应用,上面那种方案明显不适合

Quartz集群实战及原理解析

选Quartz的团队基本上是冲着Quartz本身实现的集群去的, 不然JDK自带Timer就可以实现相同的功能, 而Timer存在的单点故障是生产环境上所不能容忍的. 在自己造个有负载均衡和支持集群(高可用.伸缩性)的调度框架又影响项目的进度, 所以大多数团队都直接使用了Quartz来作为调度框架. 一. Quartz集群的架构图: 二. Quartz集群配置: <!-- 调度任务 --> <bean id="jobDetail" class="org.sp

Centos7安装zookeeper+kafka集群

Centos7安装zookeeper+kafka集群 1  Zookeeper和kafka简介 1)  ZooKeeper 是一个分布式的.分层级的文件系统,能促进客户端间的松耦合,并提供最终一致的,用于管理.协调Kafka代理,zookeeper集群中一台服务器作为Leader,其它作为Follower 2)  Apache Kafka 是分布式发布-订阅消息系统,kafka对消息保存时根据Topic进行归类,每个topic将被分成多个partition(区),每条消息在文件中的位置称为off