ZooKeeper部署

Zookeeper总体结构

Zookeeper服务自身组成一个集群(2n+1个服务允许n个失效)。Zookeeper服务有两个角色,一个是leader,负责写服务和数据同步,剩下的是follower,提供读服务,leader失效后会在follower中重新选举新的leader。

Zookeeper逻辑图如下,

1.jpg

  1. 客户端可以连接到每个server,每个server的数据完全相同。

  2. 每个follower都和leader有连接,接受leader的数据更新操作。

  3. Server记录事务日志和快照到持久存储。

  4. 大多数server可用,整体服务就可用。

Zookeeper数据模型

Zookeeper表现为一个分层的文件系统目录树结构(不同于文件系统的是,节点可以有自己的数据,而文件系统中的目录节点只有子节点)。

数据模型结构图如下,

2.png

圆形节点可以含有子节点,多边形节点不能含有子节点。一个节点对应一个应用,节点存储的数据就是应用需要的配置信息。

Zookeeper 特点

  • 顺序一致性:按照客户端发送请求的顺序更新数据。

  • 原子性:更新要么成功,要么失败,不会出现部分更新。

  • 单一性 :无论客户端连接哪个server,都会看到同一个视图。

  • 可靠性:一旦数据更新成功,将一直保持,直到新的更新。

  • 及时性:客户端会在一个确定的时间内得到最新的数据。

 

Zookeeper集群的安装,节点数2*n+1,

 

  • tickTime: zookeeper中使用的基本时间单位, 毫秒值.

  • dataDir: 数据目录. 可以是任意目录.

  • dataLogDir: log目录, 同样可以是任意目录. 如果没有设置该参数, 将使用和dataDir相同的设置.

  • clientPort: 监听client连接的端口号.

、准备Zookeeper环境

配置java环境变量:

vi /etc/profile

export JAVA_HOME=/usr/local/jdk1.7.0_45

export ZOOKEEPER_HOME=/usr/local/zookeeper

export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$ZOOKEEPER_HOME/lib

export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin:$ZOOKEEPER_HOME/bin

rpm安装jdk路径:export JAVA_HOME=/usr/java/jdk1.7.0_45

配置hostname:

vi /etc/profile

172.16.23.195zookeeper1

172.16.23.196zookeeper2

reboot

2、配置zookeeper

Wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.3.6/

tar �Cxvzf zookeeper-3.3.6.tar.gz

mv /zookeeper-3.3.6 /usr/local/zookeeper

cd /usr/local/zookeeper/conf

mv mv zoo_sample.cfg zoo.cfg

vi zoo.cfg

添加以下内容zookeeper集群:

server.1= zookeeper1:2888:3888

server.2= zookeeper1:2888:3888

标识Server ID:

cd /tmp/zookeeper

touch myid

1

其它zookeeper服务器配置步骤相同,更改myid值。

启动zookeeper:

/usr/local/zookeeper/bin/zkServer.sh start

查看启动状态:

/usr/local/zookeeper/bin/zkServer.sh status

093140221.png

093142542.png

 

启动客户端脚本:

zkCli.sh -server  zookeeper1:2181

显示根目录下、文件:
ls / 

093204739.png

创建文件,并设置初始内容:
create /test 1注释:1为赋值。

获取文件内容:
get /test

093230989.png

测试集群效果,登录另一台zookeeper

zkCli.sh -server  zookeeper2:2181

ls /

093250609.png

正确显示新建节点test,集群正常。

修改文件内容:
set /test 2

删除文件:
delete /test

退出客户端:
quit 

 

你可能感兴趣的:(zookeeper,快速搭建)