分布式协调服务zookeeper安装、使用

zookeeper是一个开源的分布式协调服务,是由雅虎创建的,基于google chubby。是一种分布式数据一致性的解决方案。
一、zookeeper的特性
顺序一致性
从同一个客户端发起的事务请求,最终会严格按照顺序被应用到zookeeper中。
原子性
所有的事务请求的处理结果在整个集群中的所有机器上的应用情况是一致的,也就是说,要么整个集群中的所有机器都成功应用了某一事务,要么全都不应用。
可靠性
一旦服务器成功应用了某一个事务数据,并且对客户端做了响应,那么这个数据在整个集群中一定是同步并且保留下来的。
实时性
一旦一个事务被成功应用,客户端就能够立即从服务器端读取到事务变更后的最新数据状态(zookeeper仅仅保证在一定时间内,近实时)。

二、单机环境安装
1、下载zookeeper的安装包
http://apache.fayea.com/zookeeper/stable/zookeeper-3.4.10.tar.gz

2、解压zookeeper 
tar -zxvf zookeeper-3.4.10.tar.gz

3、cd 到 ZK_HOME/conf  , copy一份zoo.cfg
cp  zoo_sample.cfg  zoo.cfg

4、sh zkServer.sh
{start|start-foreground|stop|restart|status|upgrade|print-cmd}

5、sh zkCli.sh -server  ip:port

三、集群环境安装
zookeeper集群包含三种角色: leader / follower /observer。
observer 是一种特殊的zookeeper节点。可以帮助解决zookeeper的扩展性(如果大量客户端访问我们zookeeper集群,需要增加zookeeper集群机器数量,从而增加zookeeper集群的性能,导致zookeeper写性能下降,zookeeper的数据变更需要半数以上服务器投票通过,造成网络消耗增加投票成本)。observer不参与投票,只接收投票结果。不属于zookeeper的关键部位。
第一步: 修改配置文件
server.id=host:port1:port2
id表示该机器在集群中的机器序号,取值范围1~255。
port1表示follower节点与leader节点交换信息的端口号。
port2表示选举leader节点的端口号,如果leader节点挂掉了, 需要一个端口来重新选举。
server.1=192.168.100.100:2888:3181
server.2=192.168.100.101:2888:3181
server.3=192.168.100.102:2888:3181

第二步:创建myid
在每一个服务器的dataDir目录下创建一个myid的文件,文件就一行数据,数据内容是每台机器对应的server ID的数字。

第三步:启动zookeeper

四、zoo.cfg配置文件
tickTime=2000  zookeeper中最小的时间单位长度 (ms)
initLimit=10  follower节点启动后与leader节点完成数据同步的时间
syncLimit=5 leader节点和follower节点进行心跳检测的最大延时时间
dataDir=/tmp/zookeeper  表示zookeeper服务器存储快照文件的目录
dataLogDir 表示配置 zookeeper事务日志的存储路径,默认指定在dataDir目录下
clientPort 表示客户端和服务端建立连接的端口号: 2181
 

猜你喜欢

转载自blog.csdn.net/wangpf2011/article/details/82356659
今日推荐