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

  • 相关阅读:
    OL8.0静默安装Oracle 19C
    MYSQL GTID 复制
    MYSQL异步复制
    YUM方式安装MYSQL5.7
    【学习笔记】大数据技术原理与应用(MOOC视频、厦门大学林子雨)
    【网友的】《一个程序猿的生命周期》读后感
    连载《一个程序猿的生命周期》-22.缺了一条腿的公司
    续评《遇到一位ITer,一位出租车司机,必看》
    遇到一位ITer,一位出租车司机,必看。
    连载《一个程序猿的生命周期》-21.而立之年,第一次跳槽,寻求转型
  • 原文地址:https://www.cnblogs.com/shuiyj/p/13185207.html
Copyright © 2020-2023  润新知