只有客户可以写信给RAFT领导人——瓶颈



我认为RAFT在实现分布式数据库方面没有太大优势。如果客户只能写信给领导,那么领导仍然会成为瓶颈——或者说是单一的失败点。理想情况下,我希望有一种方式,多个客户端可以向多个数据库写入,然后数据库在它们之间同步。这将有助于扩大规模,因为没有一个DB能成为瓶颈。有办法做到这一点吗?

在许多raft共识算法中,集群的领导者/控制器负责管理集群的健康状况,而在您的问题中,您建议它引入了一个瓶颈,但这不是真的,因为可能存在一个"领导者";到数据存储中的每个数据段,客户端将对其进行操作。如果我们以kafka为例,客户端对主题分区的领导者进行操作,该领导者可以是集群中的任何代理,并且数据被复制到同步跟随者,则它与集群的领导者/控制器无关

Appache Kafka引入了KRaft模式,避免了对Zookeeper的依赖。

即使在Docker的情况下,为了管理全局集群状态,Raft Consensus算法也是由管理器节点实现的,而Docker引擎则以集群模式运行。

还有许多其他数据库使用raft算法。HashiCorp已经在使用它。

通常,如果集群的领导者由于某种原因崩溃或没有领导者,则基于选举过程的随机节点应在选举超时结束时成为候选节点。

Raft是一种分布式共识协议,它满足了在分布式系统中实现共识的关键要求。这将涉及多个服务器达成一致,决定价值。简单地说,他们需要大多数服务器才能做出决定。这反过来又通过选举集群中的领导者来运作。

在Push模型的情况下,领导者负责跟踪集群中的复制过程。您还可以对代码进行更改,以便在跟随者负责自己复制的地方使用Pull模型。

最新更新