• 说说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高可用

  • 相关阅读:
    【转帖】如何学好 C 语言
    设计模式:单件模式(Singleton Pattern)
    如果软件正在占领全世界.为什么程序员得不到任何尊重?
    【转】程序员技术练级攻略
    JS闭包理解的彻底吗?
    设计模式:原型模式(Prototype Pattern)
    关于基础类型
    IIS5和IIS6的Asp.net应用程序生命周期事件和Global.asax文件
    App_Code文件夹和Bin文件夹
    构造函数
  • 原文地址:https://www.cnblogs.com/shuiyj/p/13185207.html
Copyright © 2020-2023  润新知