说说zookeeper一般都有哪些使用场景?

本文介绍 zookeeper 的几个应用场景:分布式协调、分布式锁、元数据/配置信息管理、HA高可用性。

分布式协调

分布式协调

zookeeper 最开始就是用来解决分布式应用如何互相协调这样一个问题的。分布式协调是 zookeeper 的典型应用。

具体来说是起到这样的作用,系统 A 保存订单之后直接给用户返回结果,同时发一个消息到 MQ 里面,系统 B 订阅 MQ 里的消息,然后正式修改库存。这里有一个问题就是怎么让系统 A 知道系统 B 已经成功对库存进行了修改?

这里就用 zookeeper 来做分布式协调,具体包括下面三个步骤:

  1. 系统 A 创建一个订单 orderId = 1,同时在 zk 中对 orderId=1 的 node 注册一个监听;
  2. 系统 B 更新订单之后修改 A 订阅的 node 的状态,比如说约定好修改为 finish_update;
  3. 系统 A 发现它订阅的节点发生了变化,就知道系统 B 成功对库存进行操作。

分布式锁

分布式

比如说现在连续有两个请求要对一个数据进行操作,系统 A 和系统 B 各自同时接到了一个请求,但是只能一台机器执行完另外一台再执行。

这个时候就可以用到分布式锁,假设系统 A 稍快一步,接到请求之后先从 zk 中获取了分布式锁,就可以在 zk 中创建一个 znode,并执行相关操作。此时系统 B 也尝试创建这个 znode 但是会发现创建不了,就会注册一个监听,等别人释放掉锁,它再来执行。

元数据/配置信息管理

zookeeper 可以用作很多系统的配置信息的管理,比如 kafka、storm 等等都用 zk 来做一些元数据、配置信息的管理,dubbo 也推荐使用 zk 来作为注册中心。

注册中心

HA高可用性

zk 也可以用来做高可用,比如说系统 A 比较重要,我们用一台机器备用。系统 A 的机器挂了,备用机器立刻补位。

HA高可用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值