zookeeper实际应用场景

1、数据发布订阅/配置中心:

实现配置信息的集中式管理和数据的动态更新

实现配置中心有两种模式:push(数据配置中心主动推送给客户端)、pull(客户端主动拉取获取数据)

zookeeper采用的是推拉相结合,客户端向服务器端注册自己需要关注的节点。一旦节点数据发生变化,那么服务器端会向客户端发送watcher事件通知。客户端收到通知后,主动到服务器端获取更新后的数据。

1)数据量比较小

2)数据内容在运行时会发生动态变更

3)集群的各个机器共享配置

2、分布式锁:

 1)redis:setNx 存在会返回0

 2)数据库:创建一个表、通过索引唯一的方式(方法名),insert一条数据成功代表拿到锁。

 3)zookeeper:

排它锁:如下图,A,B,C三个客户端往Locks节点写入临时节点Lock,成功写入的就获取锁。(在zookeeper里面,插入相同名称的节点是会报错的,利用这个特点)

共享锁:利用有序节点顺序性

3、负载均衡

请求/数据分摊多个计算机单元上

4、ID生成器

5、分布式队列

6、统一命名服务

类似与文件系统,在树形结构上建立映射关系

7、master选举

7*24小时可用,99.99%可用

master-slave模式:由于网络有可能出现脑裂问题(双主),所以通过zookeeper来解决

所有节点都往根节点注册master临时节点。注册成功的就为master。(跟上面说到的排它锁是一样的)

Zkclient实现master选举方式点击。

猜你喜欢

转载自blog.csdn.net/qq_26857649/article/details/82379996