当前位置: 首页 > news >正文

深圳vi设计公司哪家好seo关键词排名优化系统

深圳vi设计公司哪家好,seo关键词排名优化系统,个人做网站靠什么挣钱,网站建设做什么一、简介 上一节提到,在使用ZooKeeper的原生API时,经常需要处理几个问题:重复注册watcher、session失效重连、异常处理(删除节点不能有子节点,新增节点必须有父节点等),这使得实际使用中比较繁琐…

一、简介
上一节提到,在使用ZooKeeper的原生API时,经常需要处理几个问题:重复注册watcher、session失效重连、异常处理(删除节点不能有子节点,新增节点必须有父节点等),这使得实际使用中比较繁琐。zkclient是Github上一个开源的Zookeeper客户端,在Zookeeper原生 API接口之上进行了包装,是一个更加易用的Zookeeper客户端。同时Zkclient在内部实现了诸如Session超时重连,Watcher反复注册等功能,程序员开发的时候就可以不 用考虑这些小的细节,从而提高开发效率。

二、zkClient的基本操作

在使用zkClient操作Zookeeper时,基本的操作都封装在ZkClient类中,使用时直接创建ZkClient对象,调用其相应的方法即可。

1)创建连接

直接在ZkClient的构造函数中指定连接参数,完成对象创建后连接也就已经创建好。在ZkClient中提供了以下几个构造函数:

  • public ZkClient(String serverstring)
  • public ZkClient(String zkServers, int connectionTimeout)
  • public ZkClient(String zkServers, int sessionTimeout, int connectionTimeout)
  • ZkClient(String zkServers, int sessionTimeout, int connectionTimeout, ZkSerializer zkSerializer)
  • ppublic ZkClient(final String zkServers, final int sessionTimeout, final int connectionTimeout, final ZkSerializer zkSerializer, final long operationRetryTimeout)
  • public ZkClient(IZkConnection connection)
  • public ZkClient(IZkConnection connection, int connectionTimeout)
  • public ZkClient(IZkConnection zkConnection, int connectionTimeout, ZkSerializer zkSerializer)
  • public ZkClient(final IZkConnection zkConnection, final int connectionTimeout, final ZkSerializer zkSerializer, final long operationRetryTimeout)

构造器参数的含义如下:

  •  serverstring 可以指定单个服务器地址也可以是多个,这个和原 API 创建连接构造参数是一样的含义。
  •  connectionTimeout,sessionTimeout 是连接超时时间和会话超时时间。单位都是毫秒,其中会话默认是 30000 毫秒,也就是 30 秒。
  •  connection 是 IZkConnection 的接口实现类。
  •  zkSerializer 自定义的序列化器。
  • operationRetryTimeout 是在与服务连接断开后,进行重试操作的最长时间。也就是说,如果断开时间未超过operationRetryTimeout,则所有操作进行重试。operationRetryTimeout单位也是毫秒,如果传入小于0的值,则一直进行操作重试,直至与服务的连接恢复。

2)创建节点

  •  String create(final String path,Object data,final CreateMode mode)
  •  String create(final String path,Object data,final List<ACL> acl,final CreateMode mode)
  •  void create(final String path,Object data,final CreateMode mode,final AsyncCallback.StringCallback callback,final Object data)
  •  void createEphemeral(final String path)
  •  void createEphemeral(final String path,final Object data)
  •  void createPersistent(String path)
  •  void createPersistent(String path,boolean createParents)
  •  void createPersistent(String path,Object data)
  •  void createPersistent(String path,List<ACL> acl,Object data)
  •  void createPersistentSequential(String path,Object data)
  •  void createEphemeralSequential(final String path,final Object data)

 创建节点和原生 API 相比,原生只能传 byte 数组,这里可以传 Object。而且父节点不存在可以指定是否创建。

3)删除节点

  •  boolean delete(final String path)
  •  delete(final String path,final AsyncCallback.VoidCallback callback,final Object context)
  •  boolean deleteRecursive(String path)

说一下 deleteRecursive,原生 API 删除节点如果有子节点则必须把子节点都删掉才可以,这里的函数则不需要,它会自动删除所有的子节点。

 4)读取数据

 (一)、getChildren

  •  List<String> getChildren(String path)

 (二)、getData

  •  <T extends Object> T readData(String path)
  •  <T extends Object> T readData(String path,boolean returnNullIfPathNotExists)
  •  <T extends Object> T readData(String path,Stat stat)

这里说一下 returnNullIfPathNotExists,原生 API 读取数据,如果 path 不存在就会报错,这里设置 returnNullIfPathNotExists 为 true 则不会报错,会返回 null。

 5)更新数据

  •  void writeData(String path,Object data)
  •  void writeData(final String path,Object data,final int expectedVersion)

 6)检测节点是否存在

  •  boolean exists(final String path)

三、zkClient的事件监听机制

在原生Zk API中,提供了watcher的机制监听节点,而zkClient将之转换成Listener的概念,就是订阅服务端的事件,从而我们只要实现IZkChildListener 接口相应的方法就能够对事件进行处理。

订阅/取消订阅节点子变化事件

  • public List<String> subscribeChildChanges(String path, IZkChildListener listener)
  • public void unsubscribeChildChanges(String path, IZkChildListener childListener)

订阅/取消订阅数据变化事件

  • public void subscribeDataChanges(String path, IZkDataListener listener)
  • public void unsubscribeDataChanges(String path, IZkDataListener dataListener)

订阅/取消订阅连接状态变化事件

  • public void subscribeStateChanges(final IZkStateListener listener)
  • public void unsubscribeStateChanges(IZkStateListener stateListener)

取消所有订阅事件

  • public void unsubscribeAll()

此外,zkClient还对权限控制等进行了封装,关于Zookeeper的权限控制,我们明天再进行学习。更详细的API可以直接阅读ZkClient类的源码:https://github.com/sgroschupf/zkclient/blob/master/src/main/java/org/I0Itec/zkclient/ZkClient.java

参考:

Zookeeper 客户端 ZkClient https://www.cnblogs.com/xums/p/7220449.html

zookeeper学习之zkclient事件监听 https://my.oschina.net/u/2277632/blog/1532162

http://www.lbrq.cn/news/2487511.html

相关文章:

  • 关于校园网站建设的通知网站优化招商
  • 做网站怎么样才能赚到钱seo优化便宜
  • 官方网站内容更新需要怎么做淘宝怎么推广自己的产品
  • 苏州的网站建设公司山东企业网站建设
  • 互联网创业项目名称灯塔网站seo
  • 镇江做网站保定网站建设报价
  • 可以做网站的编程有什么百度一下一下你就知道
  • 中国建设银行积分商城网站网络营销的主要方法
  • 湖南网站建设kaodezhu广告关键词有哪些类型
  • 网站开发的工作内容万网官网域名注册
  • 给个网址2021年能看的seo体系百科
  • 商城网站建设定制网站建设培训网站官网
  • 厦门市建设管理协会网站首页什么是营销
  • 男女做那个的免费视频网站我是新手如何做电商
  • 各地平台网站手机百度引擎搜索入口
  • 青岛网站建设方案书seo优化推广
  • 北京餐饮培训网站建设南京市网站
  • 北京网站建设方案书做做网站
  • 晋中路桥建设集团网站网站seo顾问
  • 杭州做公司网站哪家好电商数据分析
  • ps简单网页设计模板图片广州品牌seo推广
  • 零陵做网站seoheuni
  • 什么样的网站需要备案seo模拟点击有用吗
  • 怎么做应援网站百度品牌专区
  • 包包网站建设什么是搜索引擎营销?
  • 做网站时量宽度的尺子工具适合seo优化的网站
  • 百度商桥怎么接网站营销策略包括哪些内容
  • 中山市建设局网站产品营销策划方案3000字
  • 自己做的网站为什么访问不互联网广告平台代理
  • 专做立体化的网站谷歌seo一个月费用需要2万吗
  • Valgrind Helgrind 工具全解:线程同步的守门人
  • Java面试全栈通关:从微服务到AI的技术深度解析
  • C 语言第 10 天学习笔记:字符串基础操作与相关函数
  • xgboost 机器学习在生物信息学中的应用
  • 利用RAII与析构函数避免C++资源泄漏
  • 【C语言进阶】程序环境和预处理