SpringBoot整合zookeeper3.7.0
一 下载zookeeper
1 下载地址
https://dlcdn.apache.org/zookeeper/zookeeper-3.7.0/apache-zookeeper-3.7.0-bin.tar.gz
这里我用的是最新的版本。
2 安装
下载完后,解压到本地,会有两个文件夹。
至于为什么会有两个,我也不清楚。有懂的兄弟可以评论区告诉我下面那个PaxHeaders.X的文件夹是干嘛用的。
然后打开第一个文件夹,如图:
目录结构非常的清晰。接下来就是修改配置文件。
打开conf文件夹,复制一份zoo_sample.cfg到当前目录下,重命名为zoo.cfg,然后右键编辑zoo.cfg,修改如下三行配置信息,具体路径自己修改,admin.serverPort的端口号默认是8080,如果不怕端口冲突可以不改(也就是只修改前面两个的配置信息,可以不加admin.serverPort这一行)。
修改配置文件完成。
接下来就可以启动zookeeper的服务端程序了。回到zookeeper的目录下,进入bin目录,找到zkServer.cmd程序,双击运行。第一次双击运行该程序,会一闪而过,如果想看到运行过程,我的建议是,右键编辑zkServer.cmd,在最后加上pause,然后ctrl+s保存,然后退出再运行。如图:
没有报错就是运行成功了,如果报错了,再根据报错原因排查问题。
那么到此,zookeeper就算是完全运行起来了。
可以运行zkCli.cmd来测试连接并进行操作,但是我们接下来要通过代码来操作zookeeper,就不说这一趴了。
二 SpringBoot整合zookeeper
1 引入依赖
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.4.6</version>
</dependency>
2 初始化zookeeper实例
ZooKeeper zk = new ZooKeeper("localhost:2181", 3000, new Watcher() {
@Override
public void process(WatchedEvent event) {
String path = event.getPath(); //负责监听的路径
Event.KeeperState state = event.getState(); //负责监听的状态
Event.EventType type = event.getType(); //负责监听类型
}
});
3 使用zookeeper创建、查询、更新、删除节点
// 创建
zk.create("/a1", "yangxinlei".getBytes(), ZooDefs.Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT);
// 查询
byte[] data = zk.getData("/c1", true, null);
// 删除
zk.delete("/a1",-1);
// 更新
zk.setData("/b1","testUpdate".getBytes(),-1);
三 总结
没啥好总结的,希望能对他人有用。