初识zookeeper

目录

介绍

安装与配置

客户端

java操作ZK

应用


介绍

就是一个协调组件,保证数据的一致性;(动态的进行更新,就是出错后可以进行及时的容错处理),

主要是由若干个进程以及简单的数据存储组成(每个节点中只能存储1M左右)

 Chubby是谷歌闭源的,是用的paxos算法;

 总结:

        1、协调一致的操作当中,所以后数据的同步处理都有leader处理,leader不是固定的,是有选举产生的,如果leader挂了,会选举新的leader;

安装与配置

1、集群问题

zookeeper的使用一定不是一台机器,而是服务集群,同时zookeeper依赖于JDK环境,

2、配置ZK集群主机(多台主机)

2.1、准备机器

2.2、安装jdk、上传zk安装包、解压、配置环境变量、创建工作目录、

        复制一个zoo_sample.cfg  名称为zoo.cfg

2.3、zoo.cfg配置文件

        tickTime:心跳时间间隔;

        dataDir:工作目录,如果自己创建了目录记得修改;    

        clientPort:客户端链接端口;默认2181(如果java程序要链接ZK要使用端口)

        添加配置:

                server.x=主机名称(所有存活的ZK主机列表)

 2.4、工作目录中创建主机编号

2.5、将本机配置好的工具包复制到(发送)其他主机上

        1>解压的文件

        2>环境变量并生效

        3>工作目录

        4>配置各自的主机编号

3、启动集群

3.1、 安装目录下bin/执行

3.2、查看服务状态:zkServer.sh status ,会返回两种结果一个是leader,一个是 follower

3.3、此时如果关闭leader服务(zkServer.sh stop),则会重新选举出一个leader;

3.4、jps查看进程是如果出现如下,则表示成功启动并可以提供服务

客户端

1、进入客户端后可以使用help命令查看所有支持的命令

2、ZK默认会有一个‘/’节点,不要删除,此节点由ZK维护;

3、创建节点并添加数据

4、取出几点数据

java:节点中真正保存的数据

czxid:节点最后发生一次修改的标志id

ctime:节点创建时间

mtime:节点最后一次修改时间

cversion:子节点的更新次数

dataVersion:子节点的数据更新次数

numchildren:子节点数量

5、更新值

6、 删除节点

7、监听控制,多台主机操作的时候使用,针对于数据的变化进行监听(只能监听一次变化)

         比如当A连接创建了一个节点并监听,B来修改这个节点数据,修改完之后A能看到修改的数据,但B再次修改则A不能再监听到数据变化;(ZK地资源消耗,不能长时间占用资源,可以使用循环监听)

java操作ZK

1、添加依赖(下载的ZK服务中也有依赖)

2、java类编写示例:获取链接对象

        需要将服务器集群列表全部配置上,这样其中一台服务不可用后不影响使用,会自动寻找可用的服务;

 2.2、通过链接对象获取ZK所有节点信息

 3、创建ZNode(节点)

                |- 用户定义名称-序列

永久节点:客户端链接或关闭后依赖保留节点信息;

临时节点:客户端连接时保留节点,客户端关闭时删除节点;

         代码示例

4、判断节点数据是否存在

        exists方法,返回的是Stat对象,如果有节点则不为空;

5、获取节点信息

状态返回 

 6、修改节点数据(此方法没有监听)

 7、删除节点(没有监听)

        版本使用-1表示不受版本控制;

8、数据监听(监听类型选择数据改变)--只能监听当前节点数据,没办法监听子节点

 9、子节点监听(需要监听节点-大部分都会对节点进行监听,不会对数据进行监听,所以监听节点的时候,如set方法是修改了节点数据,所以监听不到)

        很多方法都会被监听,如:

         代码示例:代码有点乱,待整理

应用

 zookeeper的应用_子书少卿的博客-CSDN博客

参考路径:https://download.csdn.net/learn/3868/67980?spm=1002.2001.3001.4143

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值