zookeeper 分布式协调服务

分布式协调服务主要是将多机协调的职责从分布式应用中独立出来,以减少系统的耦合性和增加扩展性。

zookeeper采用分布式中经典的主从架构:master->slave,通常以动态的存储分布式应用程序中关键的元数据。

作为分布式协调服务,zookeeper主要担任协调者的角色,可以提供如leader选举、负载均衡、服务发现等服务。

整体架构:

zookeeper采用层级化的内存命名空间,结构类似与文件系统的目录结构,其中每个目录节点称为ZNode,每个

ZNode具有data、type、version、children、ACL等属性。

其中data:实际的数据;type:znode类型、version:更新版本,children:子节点、ACL(Access Control List):权限管理

的一个配置List,定义谁可以对该ZNode进行访问、修改、删除等操作。同时ZNode的数据访问具有原子性,即保证数据的读取、

操作并发时的原子性。

ZNode类型

Persistent(持久化节点)、Ephemeral(临时节点,伴随session的生命周期)、sequence(唯一命名,文件名默认追加唯一的自增数字,该类型不会单独存在)

根据三种节点类型,衍生出ZNode四种类型:Persistent、Ephemeral、Persistent_sequence、Ephemeral_sequence

Watcher监听器:

发布/通知机制,当ZNode发生变化,client可收到通知,而watcher有一个重要的特征:triggered once即一旦触发,watcher就会被删除,

之后需要客户端重新注册watcher,一般客户端通过注册watcher监听znode的变化,以变快速作出响应。

Seesion:

客户端通过seesion与zookeeper之间建立通信通道,现实环境中zookeeper一般是以集群的模式搭建的,客户端只需要随机的

选择一个服务器建立session即可。

session具有时序性、容错性等特点,如时序性即当客户端发送消息,zookeeper会按照消息当时序进行记录。容错性方面,zookeeper以集

群当形式搭建,zookeeper可保证各个服务器的一致性。当客户端连接的服务器宕机,客户端可以自动连接到其他服务器上。

草稿待续。。。

猜你喜欢

转载自www.cnblogs.com/ultimateWorld/p/9005868.html