zookeeper集群
zookeeper集群中存在着两种角色,分别是leader和follower,其中一个集群中只有一个leader,负责整个集群的消息接收和分发,接到消息后,会将消息广播到每一个台follower节点上,数据master/slave模式。
zookeeper集群非常的健壮,他允许集群中一小半的服务器宕机,即4台允许2台,5台也允许两台,宕机的服务器重启后,会被自动加入到集群中
zookeeper中有两个主要方面:Node和Watches
1.Node
Node是一个树形的目录结构,每一个目录是一个节点(node),他的节点有四种:
1)持久化节点:创建之后,如果不被删除则会一直被保留下来
2)序列化持久化节点
3)临时节点:创建之后,一旦zookeeper客户端和服务端断连,那么这个节点就会被清除
例如:storm集群中如何判断服务器时候宕机,就是通过这个临时节点来控制的,当我们创建一台服务器到集群中的时候,都会在目录节后中创建一个临时的node节点,一旦这个节点消失,那么就意味着这台服务器断连了
4)持久化临时节点
zookeeper的每一个节点都是一个目录,而每一个目录都可以存放数据
2.Watches
每一个节点的数据发生变化时,或者节点被删除、创建时出发对应的时间,及时性高。
3.通过客户端命令操作zookeeper(简述)
使用下面的命令开启客户端:
./zkCli.sh -server localhost:2181
可以看到如下页面:
创建一个节点:
create [-s] [-e] path data acl
上面命令中-s指的是创建一个序列化的节点,-e指的是创建一个临时节点
下面是创建一个序列化的节点:
其中:/test 意味着这里必须是一个目录 ,value指的是一个值,序列化目录可以看出创建的node是从0开始的,leader选举就是基于此完成的
创建一个持久化的节点
获取创建的节点的明细:
get path //获取node明细
修改一个节点
set path data //修改节点
此时节点的名称就由原来的aavalue变成了newvalue
此处只是初步接触,有待后续完善!!