分布式系统详解--框架(Zookeeper-简介和集群搭建)
一、Zookeeper简介
1.1 Zookeeper是什么?
Zookeeper是一个集中式服务,用于维护配置信息,命名提供分布式同步和提供组服务。所有这些类型的服务都已分布式应用程序的某种形式使用。每次实施他们都需要做很多工作来修复不可避免的错误和竞争条件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。奇数台。
ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。
ZooKeeper代码版本中,提供了分布式独享锁、选举、队列的接口,代码在zookeeper-3.4.3\src\recipes。其中分布锁和队列有Java和C两个版本,选举只有Java版本。
1.2 设计目标
ZooKeeper很简单。ZooKeeper允许分布式进程通过共享的层级命名空间相互协调,该命名空间与标准文件系统类似地组织。ZooKeeper可以实现高吞吐量和低延迟数量。
ZooKeeper实现非常重视高性能,高可用性,严格有序的访问。
ZooKeeper被复制。与它协调的分布式进程一样,ZooKeeper本身也可以在称为集合的一组主机上进行复制。
1.3 数据模型和分层命名空间
ZooKeeper提供的名称空间非常类似于标准文件系统。名称是由斜杠(/)分隔的路径元素序列。ZooKeeper名称空间中的每个节点都由路径标识。
1.4 znode 节点有四种
普通znode: /name /name (后者将前者覆盖)。
普通序列化znode: /name /name (一旦生成,系统自动序列化 /name.....1 /name.....2)。
临时znode :当session退出或者失效,则该节点失效。
临时序列化znode。
1.5 watcher 事件
事件(节点可以注册事件)删除节点、创建节点、更新节点
二、Zookeeper安装
2.1 下载ZooKeeper,可以到官网直接下载。本文下载 zookeeper-3.4.12.tar.gz
2.2 解压安装ZooKeeper。
tar -zxvf zookeeper-3.4.12.tar.gz
2.3 配置环境变量
vi /ect/profile 添加变量。
source /etc/profile
选择./sbin/中的文件可以Tab出来就可以。
2.4 编辑 ./conf/zoo.cfg
mv ./conf/zoo_sample.cfg ./conf/zoo.cfg (将前面模版改为zoo.cfg,进入进行修改)
vi ./conf/zoo.cfg
修改并添加下列属性:
tickTime=2000 dataDir=/home/zkdata clientPort=2181 initLimit=5 syncLimit=2 server.1=MyLinux:2888:3888 server.2=centos01:2888:3888 server.3=centos02:2888:3888
2.5 复制zookeeper 到其他服务器机器上
scp ../zookeeper-3.4.12 centos01:/opt
scp ../zookeeper-3.4.12 centos02:/opt
2.6 修改centos01和centos02两台服务器中的环境变量配置。跟上面一致。
vi /etc/profile
2.7 创建文件目录 mkdir /home/zkdata
2.8 在新创建的文件夹下 /home/zkdata 创建文件myid 因为上面server配置的事情。
vi /home/zkdata/myid
在MyLinux服务器上 仅编写一个1,保存退出
在centos01服务器上 仅编写一个2,保存退出
在centos02服务器上 仅编写一个3,保存退出
2.9 启动
zkServer.sh start
zkServer.sh status 查看各自的状态。
解决状态显示报错:Error contacting service. It is probably not running问题。
(1)查看防火墙,或者直接进行重新关闭:service iptables stop
(2)查看自己的zoo.cfg 文件是否由配置错误
(3)一定要设置的目录中 ,就是上面的项目设置的目录中,/home/zkdata/myid 设置正确 1,2,3。
2.10 连接当前服务zkClin.sh 退出当前服务 quit