zookeeper
2016-12-28 21:42:38 0 举报
AI智能生成
Zookeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终将简单易用的接口和性能高效、功能稳定的系统提供给用户。 Zookeeper的主要目标是封装好复杂易出错的分布式协调服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。
作者其他创作
大纲/内容
zNode类型(数据的操作是原子性的)
PERSISTENT
数据不会丢失,delete方法删除
SEQUENCE
集群内顺序增加zNode编号
EPHEMERAL
生命周期同client连接的session同步
集群管理(以机器IP或者其他标识为path,如消失,代表机器连接不上)
适用场景
配置文件管理
分布式锁、队列、关卡
数据一致性
集群worker管理、master选举
负载均衡
zk的任务调度框架实现
配置参数
clientPort(客户端访问端口号)
dataDir(数据文件夹)
server.x=[hostname]:nnnnn[:nnnnn]
hostname:一般为IP
第一个nnnn用来连接leader的端口号
第二个nnnn用来选举leader的端口号
group.x=nnnnn[:nnnnn]
多个集群配置,配置示例:
group.1=1:2:3
group.2=4:5:6
weight.x=nnnnn
集群中xserver所占比重,例如:leader选举时
此server所占比重,默认为1
角色
leader
follower
选举算法(paxos)
observer
命名空间结构(/)
/zoo-1
/zoo-1/job1
/zoo-1/job2
/zoo-2
/zoo-2/job1
/zoo-2/job2
关联的API方法
ZooKeeper.delete(path,watcher)
Zookeeper.exists(path,watcher)
Zookeeper.getChildren(path,watcher)
Zookeeper.setData
Zookeeper.getData
Zookeeper.create(path)
应用(dubbo,根据命名空间发布服务)
读写数据
读(任何zk集群内的某个节点的数据都是同步)
写(如果follower或者observer收到写请求,则转发给leader,由leader广播)
zk sessions
0 条评论
下一页