Zookeeper基础使用机制原理

Znode:

1、Znode既是路径(目录)也是信息(文件)

2、Znode有两种分类:一分为临时节点(会话生命周期)和永久节点;二分为普通节点和顺序节点

 

Watch:

1、监听与通知机制,可以在节点上监听其本身(增、删、改)或其子节点(增、删)事件

2、代码上通过exist、getData、getChildren注册监听,通过create、delete、setData可以触发通知

 

一致性机制:

1、Single System Image,数据会被同步到所有节点,客户端可以连接任一节点,获取数据。数据同步到各个节点肯定需要一点时间,是最终一致性,所以对于类似转账的业务,不应直接去查,而应注册监听等待通知,才能保证数据一致性

2、Sequential Consistency,同时写同一条记录问题,Leader-Follower机制,写请求都会路由到Leader,每个写请求都会加一个数字标签表明事务顺序,写请求按照顺序执行(异步的分布式系统实现同步的效果)

 

应用:

Zookeeper最常用的定位是分布式协调服务,协调是一个比较宽泛的概念,按照官方文档它其实可以有很多应用场景

统一命名空间 Name Service 

配置管理

集群管理 Group Membership – 检测成员状态即集群节点状态

集群管理 Election – 集群选举

分布式锁

 

*分布式队列 – 生产者消费者队列

*Barriers (篱笆墙) - A barrier is a primitive that enables a group of processes to synchronize the beginning and the end of a computation.

*Two-phased Commit两阶段提交,通常用于分布式事务

*BookKeeper – 分布式日志流存储

 

这些应用的实现原理都是用上面的znode和watch机制,如集群选举,各个节点对应临时顺序节点,顺序最小的为主;分布式锁原理一模一样,顺序最小的节点获取到锁。

posted @ 2018-12-10 16:35  余正忠  阅读(207)  评论(0编辑  收藏  举报