Zookeeper

Zookeeper介绍

zookeeper是一个分布式协调框架,用于解决分布式应用中常遇到的一些数据管理问题,如:统一命名服务, 状态同步服务, 集群管理, 分布式应用配置项的管理等.

zookeeper = 文件系统 + 监听通知机制
客户端注册监听它所关注的目录节点,当该目录节点发生变化(数据改变, 被删除, 子目录节点增加删除)时,zookeeper会通知客户端.

Zookeeper节点类型

PERSISTENT : 持久化目录节点.客户端与zookeeper断开连接后,该节点依旧存在.
PERSISTENT_SEQUENTIAL : 持久化顺序编号目录节点.客户端与zookeeper断开连接后,该节点依旧存在,只是zookeeper给该节点名称进行顺序编号.
EPHEMERAL : 临时目录节点.客户端与zookeeper断开连接后,该节点被删除.
EPHEMERAL_SEQUENTIAL : 临时顺序编号目录节点.客户端与zookeeper断开连接后,该节点被删除,只是zookeeper给该节点名称进行顺序编号.

Zookeeper集群

集群的搭建

ZAB原子广播协议

集群Leader选举原理(myid, ZXID)
集群消息广播(二阶段提交)

Zookeeper应用

集群管理(服务注册与发现)

集群管理主要在于两点:其一,是否有服务机器的加入和退出;其二,选举master.
对于第一点,所有服务机器约定在父目录下创建临时目录节点,然后所有的客户端去监听父目录节点的子节点变化事件。一旦有服务机器挂掉,该机器与zookeeper的连接会断掉,其所创建的临时目录节点会被清除,所有客户端都会收到通知。新服务机器加入也是类似。
对于第二点,约定所有服务机器创建临时顺序编号目录节点,每次选取编号最小的机器作为master就好。

分布式配置中心

将公共的配置数据写到一个目录节点中,使所有需要该配置数据的分布式机器监听该节点的数据变化事件,一旦配置数据改变,所有机器都会收到通知,重新读取配置数据到内存中。

分布式锁

通过临时有序目录节点实现读写锁

你可能感兴趣的:(分布式,分布式,zookeeper)