【问题标题】:How do other messaging systems deal with the problems that Zookeeper in Kafka solves?其他消息系统如何处理 Kafka 中的 Zookeeper 解决的问题?
【发布时间】:2019-07-28 06:45:22
【问题描述】:

Zookeeper 是一个协调服务,处理诸如 -

  1. 如果集群中的一个节点出现故障,zookeeper 将寻找另一个节点
  2. 处理对共享资源的序列化访问
  3. 竞争条件、死锁。

其他流行的消息传递系统没有 zookeeper。他们当然应该面临 Zookeeper 声称要解决的问题。

  • Q1) 他们是否有其他方法来处理这些问题?扔 对这些方式有所了解。
  • Q2) 他们是否找到了共存的方式 有这些问题吗?

【问题讨论】:

    标签: apache-kafka apache-zookeeper distributed-computing distributed-system consensus


    【解决方案1】:

    Zookeeper 用于在分布式系统中实现资源一致性。

    Apache Kafka 依赖 Zookeeper 来实现多种用途:

    • 以可靠的方式持久保存集群元数据和主题配置。
    • 选举代理控制器
    • 为主题/分区选举领导者
    • 发现失败的代理

    在底层,Zookeeper 使用自己的协议(ZAB,Zookeeper Atomic Broodcast)来支持数据复制、选举、故障恢复。但是它们存在其他协议,用于在分布式系统中达成共识,例如 Paxos 和Raft

    例如,某些系统使用 Etcd 作为 Zookeepers 的替代品,它实现了 Raft 协议以提供一致性。

    实际上,大多数 Apache Kafka 替代品都使用 Zookeeper:

    最后,提供名为Quorum Queues的分布式队列机制的RabbitMQ实际上依赖于Raft协议的变体。

    【讨论】:

    • 真的很喜欢这个答案 - 它涵盖了很多领域。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-18
    • 2018-07-13
    • 2019-10-28
    • 2020-04-21
    • 2013-03-20
    • 2019-05-23
    • 2016-03-24
    相关资源
    最近更新 更多