Zookeeper简介及选举机制

1.概述

Zookeeper是一个开源的,分布式的,为分布式框架(如下图中的Hadoop和Hive)提供协调服务的Apache项目。

工作机制:基于观察者 设计模式的分布式服务管理框架,负责存储和管理数据,接受观察者注册,一旦这些数据状态发生变化,Zookeeper就会发送通知给这些已注册的观察者。简而言之,Zookeeper = 文件系统+通知机制

特点:

1)由1个Leader和多个Follower组成的集群

2)有一半以上节点存活,Zookeeper集群就能正常服务,所以Zookeeper适合安装奇数台服务器(比如5台和6台服务器,都是挂3台之后Zookeeper集群不能服务,6台服务器相比于5台服务器的可靠性并没有提高)

3)全局数据一致,每个服务器都有一份相同的数据副本

4)来自同一个客户端的请求顺序执行

5)数据更新具有原子性,要么成功,要么失败

2.数据结构

Zookeeper的数据结构和Linux类似,都是树形结构(类似的还有HDFS),每一个节点称为一个ZNode,默认存储1MB的数据,所以不能存储海量数据,只能存储配置信息这种小数据。

3.配置

将conf目录下的zoo_sample.cfg修改为zoo.cfg,其中内容如下

其中dataDir的值需要修改,不要设为放在Linux临时目录下。tickTime表示心跳时间,客户端与服务端或者服务端与服务端的通信心跳时间。initLimit表示Leader和Follower初始化第一次建立连接的最大通信心跳数。syncLimit表示建立第一次连接连接之后的最大通信心跳数。clientPort是客户端端口号。

启动服务端命令:bin/zkServer.sh start,可以通过jps -l看到zookeeper的进程:

启动客户端命令:bin/zkCli.sh

查看zk服务端状态命令:bin/zkServer.sh status,下图显示的是standalone模式

停止服务端命令:bin/zkServer.sh stop

4.第一次选举机制

其中的myid是在配置文件里,相当于这台服务器的身份标识。第一次选举机制可以简单理解为依次投给myid最大的服务器,直到集群里半数以上服务器启动完。

5.非第一次启动选举机制

相关推荐
ACRELKY1 小时前
养殖场中的分布式光伏发电
分布式
bubble小拾10 小时前
Kafka日志索引详解与常见问题分析
分布式·kafka
杰信步迈入C++之路11 小时前
【RabbitMQ】RabbitMQ 概述
分布式·rabbitmq
petaexpress11 小时前
分布式云化数据库的优缺点分析
数据库·分布式
安科瑞刘鸿鹏13 小时前
分布式光伏发电系统如何确保电能质量达到并网要求?
服务器·网络·分布式·嵌入式硬件·能源
懒鸟一枚14 小时前
XXl-SSO分布式单点登录框架
分布式
月夜星辉雪15 小时前
【RabbitMQ 项目】服务端:数据管理模块之消息管理
分布式·rabbitmq
兮动人16 小时前
Zookeeper 3.8.4 安装和参数解析
zookeeper·zookeeper安装·zookeeper 3.8.4·zookeepe参数解析
guitarCC18 小时前
spark Rdd的创建方式
大数据·分布式·spark
Yz987618 小时前
Hadoop里面MapReduce的序列化与Java序列化比较
java·大数据·jvm·hadoop·分布式·mapreduce·big data