分布式服务框架 Zookeeper

Zookeeper 分布式服务框架是 Apache Hadoop 的一个子项目,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。本文将从使用者角度详细介绍 Zookeeper 的安装和配置文件中各个配置项的意义,以及分析 Zookeeper 的典型的应用场景(配置文件的管理、集群管理、同步锁、Leader 选举、队列管理等),用 Java 实现它们并给出示例代码。

原理: https://www.cnblogs.com/raphael5200/p/5285583.html

分布式协调服务架构
分布式:多个计算机组成解决同一个问题的体统
出现问题:
节点失效
配置信息的创建及更新:更改数据库信息
分布式锁

zookeeper:分布式协调服务
一.配置中心
负载均衡,多个节点分配节点
统一命名服务
共享锁

二.版本号{cversion dataversion vclversion}
单机部署步骤:
1.下载zookeeper.tar.gz
tar -xzvf .tar.gz
2.拷贝zoo_sample.cfg重命名zoo.cfg,修改zoo.cfg
zoo.cfg详见其文件:
tickTime=2000
dataDir=D:/devtools/zookeeper-3.2.2/build
clientPort=2181
3.启动bin/zkServer.sh star|stop|restart|status
  启动ZK服务:        bin/zkServer.sh start
  查看ZK服务状态:  bin/zkServer.sh status
  停止ZK服务:        bin/zkServer.sh stop
  重启ZK服务:        bin/zkServer.sh restart
比如:./zkServer.sh start
这里如果启动后,查看状态出错
先stop掉,用./zkServer.sh start-foreground启动,查看具体错误日志。
可能没有安装jdk或文件夹没有创建:
通过如下命令安装jdk:
yum install java-1.8.0-openjdk*
安装完成之后,我们可以通过
java -version
ZooKeeper命令行:
在安装目录bin下,执行zkcli.cmd 或zkcli.sh。然后输入命令。
常用命令:
查看数据:ls /, ls2
获取数据:get /

4.bin/zkCli.sh [-timeout 0 -r]-server host:port

三.集群部署:
leader选举算法
paxos算法
配置多个server文件夹,同步单机操作在每个server内
1.zoo.cfg中,保证每个服务端口号唯一 clientPort=2181
2.zoo.cfg中,dataDir文件server路径选择自己的。
3.zoo.cfg中:
#2888 是server 之间通讯的,3888 是应用程序通讯的 

# 同时加入其他两个服务的地址和端口信息 
#server.1 =101.200.129.112:2888:3888
#server.2 =101.200.129.112:2889:3889
#server.3 =101.200.129.112:2890:3890

leader follow
问题:为什么两个端口号

四.客户端操作命令
1.create [-s][-e]path data acl
创建节点,一般创建节点加上监听,这样其他应用对节点改动就能监听到。
-s是有序节点
2.get path[watch]
3.set path data[version]
4.delete path[version]
5.setquota -n|-b val path

五.配置
zookeeper-3.4.9\conf\zoo.cfg 配置端口,最大连接数。

六.权限
schema
digest
ip
word

七.监听
doWatcher

八.centos下的zookeeper使用


http://www.ibm.com/developerworks/cn/opensource/os-cn-zookeeper/

猜你喜欢

转载自572327713.iteye.com/blog/2347550