其他消息传递系统如何处理Kafka中zookeeper解决的问题?

zlhcx6iw  于 2021-06-04  发布在  Kafka
关注(0)|答案(1)|浏览(524)

zookeeper是一个协调服务,负责处理以下问题-
如果集群中的一个节点宕机,zookeeper将寻找另一个节点
处理对共享资源的序列化访问
比赛条件,僵局。
其他流行的消息传递系统没有zookeeper。他们当然应该面对Zookeeper声称要解决的问题。
问题1)他们有其他方法来处理这些问题吗?给那些方法一些启示。
问题2)他们是否找到了与这些问题共存的方法?

mnowg1ta

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协议的一个变体。

相关问题