zk系列-zookeeper的使用
来源:互联网 发布:知名coser 知乎 编辑:程序博客网 时间:2024/05/21 16:09
zk支持java/c访问,java常用的有apache-zkclient、社区版的i0tec-zkclient、github.adyliu,apache-zkclient是zk自身提供的接口,i0tec/adyliu都是对apache版的封装丰富,提供了便捷的事件监听和数据序列化。C版的使用见"zk系列-c++下zookeeper使用实例"。具体使用不做介绍了。
一般zkclient要支持如下功能:
- 节点-创建、删除、是否存在、永久节点、临时节点、序列节点
- 事件-子节点变化、节点变化、状态变化、数据变化事件的注册和取消。也就是收到服务端事件通知时,根据事件类型调用相关函数。
- 维护对不同zkserver的zkclient,维护各自的连接数,当一个zkclient的连接数为0时,关闭其连接
- 如果维护全公司的zk,可以封装一些默认的配置,让zk对使用者完全透明
- 支持存储数据的序列化和反序列化:如java中的Properties,来管理配置(properties或xml格式);或者其他格式,只要自己知道二进制流的格式就好
- 分布式锁-不同进程或服务间互斥的实现,主要使用临时序列节点
- 向zkserver在同一个父目录(如/lock)下创建临时序列子节点(/lock/ip_),并监听/lock子节点变化
- /lock下会有/ipa_1,/ipb_2,/ipc_3类似递增的临时节点
- ipa获得/lock下所有子节点,当前最小节点是自己创建的时候,表示该服务获得锁
- ipa完成互斥操作后,删除/lock/ipa_1,表示释放锁
- zkserver会通知其他client变化,其他client重复以上判断和操作
- 统一配置:服务经常有自己的配置文件,但服务又是多份部署,为了保证配置的一致性及修改方便,可以用zkserver维护配置文件。各服务都监听配置节点,当节点数据变化时,各自获取新数据(即配置)
- 服务管理:后台服务都向一个节点下创建子节点,保存自己的Ip和端口;客户端获取该节点下的所有子节点,随机选一个ip去调用。也可以做智能一些,每个ip节点还能记录下最近一段时间使用该ip的client数,这样client选用使用数最少的ip,达到更好的负载均衡。
0 0
- zk系列-zookeeper的使用
- zk系列-c++下zookeeper使用实例
- zk系列-c++下zookeeper使用实例
- zk系列-c++下zookeeper使用实例
- 【zookeeper系列】ZK典型的应用场景
- zk系列-zookeeper概述
- 使用zk-smoketest测试zookeeper
- zk-002 zookeeper的基本概念
- 浅谈zk(1) 为什么要使用zookeeper?
- 浅谈zk(2) zookeeper的特性
- ZK-Client的使用
- zookeeper入门(二)——zk客户端脚本使用
- [ZK]zookeeper简单介绍
- zookeeper的web界面查看工具 zk-web
- zk的jar包冲突:java.lang.NoSuchMethodError: org.apache.zookeeper.ZooKeeper.getChildren(Ljava/lang/String;
- zookeeper管理工具-zk-web安装
- Zookeeper学习1---zk配置
- Zookeeper管理工具node-zk-browser
- cp
- 新秀们也在互相觊觎对方的市场
- 配置probe来监控tomcat
- fir net 深度优先搜索 回朔算法 c++
- 希尔排序的理解
- zk系列-zookeeper的使用
- mysql用户管理
- eclipse 中git解决冲突
- 2013奇虎360系统平台开发工程师南京面试题
- Java入门到精通——调错篇之解决MyEclipse 输入注册码后:Enter or update your subscription information.问题
- 图片轮播自动手动Jquery
- Hibernate load和get的区别
- mybatis入门
- CHScrollbarListBox