本文介绍 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 的机器挂了,备用机器立刻补位。

说说zookeeper一般都有哪些使用场景?相关推荐

  1. zookeeper 都有哪些使用场景?

    面试题 zookeeper 都有哪些使用场景? 面试官心理分析 假设现在聊的话题是分布式系统,面试官跟你聊完了 dubbo 相关的一些问题之后,已经确认你对分布式服务框架/RPC框架基本都有一些认知了 ...

  2. 分布式面试 - zookeeper 都有哪些使用场景?

    分布式面试 - zookeeper 都有哪些使用场景? 面试题 zookeeper 都有哪些使用场景? 面试官心理分析 现在聊的 topic 是分布式系统,面试官跟你聊完了 dubbo 相关的一些问题 ...

  3. zookeeper 网关_zookeeper 有哪些应用场景?面试官希望听到这 4 点!

    点击蓝色"架构文摘"关注我哟 加个"星标",每天上午 09:25,干货推送! 作者:中华石杉 来源:github.com/shishan100/Java-Int ...

  4. [css] 你有用过clip-path吗?说说你对它的理解和它都有哪些运用场景?

    [css] 你有用过clip-path吗?说说你对它的理解和它都有哪些运用场景? clip-path属性可以创建一个只有元素的部分区域可以显示的剪切区域它的值可以为以下几种: 用 表示剪切元素的路径: ...

  5. 百度云gpu服务器,百度云GPU服务器都有哪些使用场景?

    原标题:百度云GPU服务器都有哪些使用场景? 百度云GPU服务器是配备独立显卡服务器的高性能运算服务器,可以为视觉计算.高性能计算等领域提供卓越的处理能力.根据需求场景的不同,既可提供更具灵活性和易用 ...

  6. zookeeper都有哪些使用场景

    分布式协调 分布式锁 注册中心(元数据/配置信息管理) HA高可用性

  7. AddTransient、AddSingleton、AddScoped 三者都应该在什么场景下使用

    网上随便一搜,能搜出一大堆对三者进行区别分析的文章,但是呢,理论是一回事,实际使用又是另外一回事,到底在何种场景下应该使用何种注入方式呢? 通过这篇文章和我自身的实际经验,来说一说实际应用中的情况: ...

  8. 编程师代码G都喜欢的|细致场景森系插画手机壁纸

    细致场景森系插画手机壁纸.日常不单调给生活来点想象力,丰富的细节和舒适温馨的配色,装饰感满满 画面处处充满了生机与活力,太治愈了!编程师代码G都喜欢的,拿走! 更多动漫壁纸,手机壁纸到高图网 ,说到壁 ...

  9. 面试管:Zookeeper在项目的典型应用场景请你回答一下

    之前自己写了一些关于Zookeeper的基础知识,Zookeeper作为一种协调分布式应用高性能的调度服务,实际的应用场景也非常的广泛,这里主要通过几个例子来具体的说明Zookeeper在特定场景下的 ...

最新文章

  1. if语句的一种使用失误
  2. 2010 eWEEK 年度产品
  3. 网易云信三周年:我们只做第一
  4. Java 并发编程—核心理论
  5. 如何理解,互联网架构“高并发”?
  6. 将Session写入数据库
  7. jpg和tif转pdf遇到的问题和解决方法
  8. 为什么很多公司不要培训出来的Java程序员?
  9. 一款熊猫游戏java_狂热的熊猫_JAVA游戏免费版下载_7723手机游戏[www.7723.cn]
  10. android软件开发 开题报告,基于Android手机app开发与设计 毕业设计 开题报告
  11. 南京信息工程大学计算机与科学专业,南京信息工程大学王牌专业有哪些及专业排名...
  12. 腾讯python招聘_技术 | Python:腾讯招聘信息抓取
  13. #留言板(五)#留言板界面
  14. bxl文件转换为AD可以用的原理图和PCB库文件
  15. Java bin 目录下的小工具使用与学习
  16. Ghost高级教程——克隆备份
  17. android 获取wifi 信号质量,信号强度
  18. vc中c语言多线程,VS2010配置C/C++多线程使用环境
  19. 创新微MinewSemi厘米级定位精度的GNSS 模块—MS32SN4
  20. GD32VF103_DAC

热门文章

  1. STM32H743 SOEM EtherCAT基于STM32H743芯片和SOEM的EtherCAT主站源码
  2. 三维gis系统 开发
  3. 关于wangEditor5上传本地图片的详细配置
  4. 如何中文下使用英文标点,但是保留逗号句号。
  5. npm : 无法将“npm”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。 所在位置 行:1 字符: 1
  6. 使用redis实现防止重复提交,成功解决方案 春风化作秋雨 2018-09-13 18:09:52 13787 收藏 6 分类专栏: 解决方案 版权 1、业务场景 业务开发中,常常涉及对前端操作
  7. 双路服务器主板跳线位置,主板上对应的跳线位置要认清
  8. 滚粗后-高中化学常用方程
  9. 带薪“看片”?继阿里后微信也公开招聘“鉴黄师”!
  10. java基于微信小程序旅游管理系统 uniapp 小程序