项目总结day19之Zookeeper

1 Zookeeper

1.1 Zookeeper介绍

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。
ZooKeeper包含一个简单的原语集,提供Java和C的接口。
ZooKeeper代码版本中,提供了分布式独享锁、选举、队列的接口,代码在zookeeper-3.4.3\src\recipes。其中分布锁和队列有Java和C两个版本,选举只有Java版本。

总结:Zookeeper负责服务的协调调度.当客户端发起请求时,返回正确的服务器地址。

1.2 Zookeeper下载

地址:http://zookeeper.apache.org/releases.html

1.3 Zookeeper安装

1.3.1 安装JDK

1.3.2 安装zookeeper

(1)上传zookeeper安装文件
在这里插入图片描述
(2)解压

tar -xvf zookeeper-3.4.8.tar.gz

1.3.3 修改配置文件

(1)在zookeeper根目录下创建文件夹

mkdir data log

在这里插入图片描述
(2)进入conf目录中修改配置文件,复制配置文件并且修改名称

cp zoo_sample.cfg zoo.cfg

在这里插入图片描述
(3)启动ZK
跳转到bin目录中,启动关闭目录如下:

 sh zkServer.sh start     或者  ./zkServer.sh start
 sh zkServer.sh stop
 sh zkServer.sh status

在这里插入图片描述

1.4 Zookeeper集群安装

1.4.1 准备文件夹

(1)在zookeeper根目录中创建新的文件夹zkCluster

mkdir zkClusters

在这里插入图片描述

(2)创建zk1/zk2/zk3文件夹

mkdir zk1 zk2 zk3

在这里插入图片描述

(3)在每个文件夹里创建data/log文件夹

mkdir {zk1,zk2,zk3}/{data,log}

在这里插入图片描述

1.4.2 添加myid文件

(1)分别在zk1/zk2/zk3中的data文件夹中创建新的文件myid.其中的内容依次为1/2/3,与zk节点号对应。
在这里插入图片描述
(2)编辑myid文件,定义编号
在这里插入图片描述

1.4.3 编辑配置文件

(1)将zoo_sample.cfg 复制为zoo1.cfg之后修改配置文件
在这里插入图片描述
(2)修改zoo1.cfg
配置完成后将zoo1.cfg复制2份.之后需要修改对应的文件夹目录.和不同的端口即可。
在这里插入图片描述

1.4.4 zk集群测试

(1)通过下面的命令启动zk集群

sh zkServer.sh start   zoo1.cfg
sh zkServer.sh stop    zoo1.cfg
sh zkServer.sh status  zoo1.cfg

(2)检查主从关系
follower表示从
在这里插入图片描述
leader表示主
在这里插入图片描述
(3)Zookeeper集群中leader负责监控集群状态,follower主要负责客户端链接获取服务列表信息.同时参与投票。

1.5 为什么集群一般都是奇数个?

公式:存活的节点 > N/2
常识:最小的集群的单位3台
例子:
1个节点能否搭建集群? 1-1 > 1/2 假的 1个节点不能搭建集群
2个节点能否搭建集群? 2-1 > 2/2 假的 2个节点不能搭建集群
3个节点能否搭建集群? 3-1 > 3/2 真的 3个节点能搭建集群
4个节点能否搭建集群? 4-1 > 4/2 真的 4个节点能搭建集群

	    	3个节点最多允许宕机1,否则集群崩溃.
	    	4个节点最多允许宕机1,否则集群崩溃.

搭建奇数台和偶数台其实都可以,但是从容灾性的角度考虑,发现奇数和偶数的效果相同,所以搭建奇数台。

1.6 ZK集群选举规则

zk集群选举采用最大值(myid)优先的算法实现,如果集群中没有主机,则开始选举(超半数即可),如果有主机,则选举结束。
(1)1 2 3 4 5 6 7 依次启动时
问题1:谁当主机?
答:4当主机
问题2:谁永远不能当选主机?
答: 1,2,3

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值