Zookeeper整合JAVA应用学习笔记

本文详细介绍了Zookeeper原生客户端的使用,包括常用构造器、主要方法及其特点。讨论了官方API的不足,如一次性Watcher和异常处理,并展示了同步、异步节点操作示例。此外,还强调了算法在实际工作中的重要性,分享了动态规划、回溯算法等算法学习资源。
摘要由CSDN通过智能技术生成

Zookeeper应用的开发主要通过java客户端API去连接和Zookeeper集群。

Zookeeper提供java客户端API:

  • Zookeeper官方的java客户端API
  • 第三方的java客户端API,比如Curator()

Zookeeper官方客户端API提供了基本操作:创建会话、创建节点、读取节点、更新数据、删除节点和检查节点是否存在等。

官方API的不足之处:(Zookeeper官方API功能比较简单,在实际开发过程中不推荐使用)

  1. Zookeeper的WatcherJ监测是一次性的,每次触发之后需要重新注册。会话超时之后没有实现重连机制。
  2. 异常处理繁琐,Zookeeper提供了很多异常,对于开发人员来说可能根本不知道如何处理这些抛出来的异常
  3. 仅提供简单的byte[]数组类型的接口,没有提供Java POJO级别的序列化数据处理接口
  4. 创建节点时如果抛出异常,需要自行检查节点是否存在
  5. 无法实现级联删除

Zookeeper原生客户端使用

引入zookeeper client依赖(与服务端保持一致,否则会有很多兼容性问题)

<!-- Zookeeper client -->
<dependency>
    <groupId>org.apache.zookeeper</groupId>
    <artifactId>zookeeper</artifactId>
    <version>3.8.0</version>
</dependency>

Zookeeper原生客户端主要使用org.apache.zookeeper.ZooKeeper这个类来使用ZooKeeper服务。

ZooKeeper常用构造器

Zookeeper(connectString,sessionTimeout,watcher)
  1. connectString:使用逗号分隔的列表,每个Zookeeper节点是一个host.port对,host是机器名或者IP地址,port是ZooKeeper节点对客户端提供服务的端口号。客户端会任意选取connectString中的一个节点建立连接。
  2. sessionTimeout:session timeout 时间
  3. watcher:接收来自Zookeeper集群的事件。

使用zookeeper原生API,连接zookeeper集群

public class ZkClientDemo {

    private static final  String  CONNECT_STR="localhost:2181";
    private final static  String CLUSTER_CONNECT_STR="192.168.65.156:2181,192.168.65.190:2181,192.168.65.200:2181";

    public static void main(String[] args) throw
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值