安装和用原生API连接Zookeeper

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: Zookeeper是一个典型的分布式数据一致性的解决方案,分布式应用程序可以基于它实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master 选举、分布式锁和分布式队列等功能。

Zookeeper是一个典型的分布式数据一致性的解决方案,分布式应用程序可以基于它实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master 选举、分布式锁和分布式队列等功能。

       今天记录一下在Windows上安装并启动Zookeeper。

一、先到官网下载最新的稳定版:

https://zookeeper.apache.org/releases.html

image.png

       这里要注意的是 红色框框里第一行是编译好的二进制,我们直接下载这个,第二行是源码,源码里我下载后发现是没有包的,会报一个找不到包的错,我们直接下载解压,这个是在3.5之后更改的,3.5之前源码也可以直接启动,但是3.5之后就不行了。

报错:找不到或无法加载主类 org.apache.zookeeper.server.quorum.QuorumPeerMain

二、解压

image.png

       解压后获取的就是上图所示的目录结构,现在就可以直接启动了,打开bin目录,双击zkServer.cmd即可。

       启动后会出现黑屏终端,并打印出日志信息:

image.png

出现绑定到端口说明成功了。

三、配置

       如果想自定义配置一些东西,可以conf目录下,复制zoo_sample.cfg文件,重命名为zoo.cfg。

image.png

       在zooe.cfg中即可修改或者添加配置:

Linux其实和Windows差不多,不过是用命令来操作,最后启动的文件不是cmd,而是zkServer.sh start。

$ wget https://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.6.3/zookeeper-3.6.3.tar.gz

$ tar -zxvf zookeeper-3.6.3.tar.gz

$ cd zookeeper-3.6.3

$ cd conf/

$ cp zoo_sample.cfg zoo.cfg

$ cd ..

$ cd bin/

$ sh zkServer.sh start


四、Java连接Zookeeper

packagecom.xing.studyboot.component.zookeeper;
importjava.util.concurrent.CountDownLatch;
importorg.apache.zookeeper.WatchedEvent;
importorg.apache.zookeeper.Watcher;
importorg.apache.zookeeper.Watcher.Event;
importorg.apache.zookeeper.ZooKeeper;
publicclassTestZookeeper {
publicstaticvoidmain(String[] args) {
try {
finalCountDownLatchcountDownLatch=newCountDownLatch(1);
@SuppressWarnings("resource")
ZooKeeperzooKeeper=newZooKeeper("172.23.8.168:2181",4000, newWatcher() {
@Overridepublicvoidprocess(WatchedEventevent) {
if(Event.KeeperState.SyncConnected==event.getState()){
//如果收到了服务端的响应事件,连接成功countDownLatch.countDown();
                      }
                  }
              });
countDownLatch.await();
//CONNECTEDSystem.out.println(zooKeeper.getState());
      }catch (Exceptione) {
e.printStackTrace();
    }
  }
}

运行main方法:

       控制台输出 connected 显示连接成功!


总结:

       安装和Java使用原生API连接Zookeeper。

     

END

相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
目录
相关文章
|
4月前
|
XML Java 数据库连接
MyBatis深入探索:原生API与注解方式实现CRUD操作
MyBatis深入探索:原生API与注解方式实现CRUD操作
73 0
|
4月前
|
敏捷开发 JavaScript 前端开发
❤❤❤【Vue.js最新版】sd.js基于jQuery Ajax最新原生完整版for凯哥API版本❤❤❤
❤❤❤【Vue.js最新版】sd.js基于jQuery Ajax最新原生完整版for凯哥API版本❤❤❤
|
6天前
|
存储 Shell 数据安全/隐私保护
ZooKeeper【基础知识 04】控制权限ACL(原生的 Shell 命令)
【4月更文挑战第11天】ZooKeeper【基础知识 04】控制权限ACL(原生的 Shell 命令)
25 7
|
6天前
|
Java API Apache
ZooKeeper【基础 03】Java 客户端 Apache Curator 基础 API 使用举例(含源代码)
【4月更文挑战第11天】ZooKeeper【基础 03】Java 客户端 Apache Curator 基础 API 使用举例(含源代码)
24 11
|
30天前
|
API 开发者
淘宝商品评论API:连接消费者与商家的桥梁
淘宝商品评论API作为一项技术工具,它的确起到了连接消费者与商家的桥梁作用。
17 0
|
3月前
|
SQL 前端开发 测试技术
Api -- 连接世界的Super Star
Api -- 连接世界的Super Star
|
4月前
|
存储 Shell 数据安全/隐私保护
ZooKeeper【基础 04】控制权限ACL(原生的 Shell 命令)
ZooKeeper【基础 04】控制权限ACL(原生的 Shell 命令)
36 0
|
4月前
|
Java API Apache
ZooKeeper【基础 03】Java 客户端 Apache Curator 基础 API 使用举例(含源代码)
ZooKeeper【基础 03】Java 客户端 Apache Curator 基础 API 使用举例(含源代码)
24 0
|
4月前
|
API
原生api的缺点 typeof , indexOf 等
原生api的缺点 typeof , indexOf 等
14 0