zookeeper是一个协调服务,负责处理以下问题-如果集群中的一个节点宕机,zookeeper将寻找另一个节点处理对共享资源的序列化访问比赛条件,僵局。其他流行的消息传递系统没有zookeeper。他们当然应该面对Zookeeper声称要解决的问题。问题1)他们有其他方法来处理这些问题吗?给那些方法一些启示。问题2)他们是否找到了与这些问题共存的方法?
mnowg1ta1#
zookeeper用于实现分布式系统中的资源一致性。apache kafka依赖zookeeper实现多种用途:以可靠的方式持久化集群元数据和主题配置。选举经纪人控制人为主题/分区选举领导人发现失败的经纪人等。在后台,zookeeper使用自己的协议(zab,zookeeper-cast)来支持数据复制、选择和故障恢复。但在分布式系统中,它们还存在其他协议来达成共识,如paxos和raft。例如,一些系统使用etcd作为Zookeeper的替代方案,实现raft协议以提供一致性。实际上,zookeeper被大多数apache kafka替代品使用:apache pulsar(概念架构概述)普拉维加(普拉维加概念/)logdevice(logdevice.io)最后,rabbitmq提供了称为quorum queues的分布式队列机制,它实际上依赖于raft协议的一个变体。
1条答案
按热度按时间mnowg1ta1#
zookeeper用于实现分布式系统中的资源一致性。
apache kafka依赖zookeeper实现多种用途:
以可靠的方式持久化集群元数据和主题配置。
选举经纪人控制人
为主题/分区选举领导人
发现失败的经纪人
等。
在后台,zookeeper使用自己的协议(zab,zookeeper-cast)来支持数据复制、选择和故障恢复。但在分布式系统中,它们还存在其他协议来达成共识,如paxos和raft。
例如,一些系统使用etcd作为Zookeeper的替代方案,实现raft协议以提供一致性。
实际上,zookeeper被大多数apache kafka替代品使用:
apache pulsar(概念架构概述)
普拉维加(普拉维加概念/)
logdevice(logdevice.io)
最后,rabbitmq提供了称为quorum queues的分布式队列机制,它实际上依赖于raft协议的一个变体。