【发布时间】:2021-06-14 03:19:56
【问题描述】:
我没有看到 RAFT 在实现分布式数据库方面的巨大优势。如果客户端只能写入领导者,那么领导者仍然会成为阻塞点——或单点故障。理想情况下,我想要一种方式,多个客户端可以写入多个 DB,然后 DB 在它们之间同步。这将有助于扩大规模,因为没有单个数据库充当阻塞点。有没有办法做到这一点?
【问题讨论】:
标签: database distributed-computing distributed-system raft
我没有看到 RAFT 在实现分布式数据库方面的巨大优势。如果客户端只能写入领导者,那么领导者仍然会成为阻塞点——或单点故障。理想情况下,我想要一种方式,多个客户端可以写入多个 DB,然后 DB 在它们之间同步。这将有助于扩大规模,因为没有单个数据库充当阻塞点。有没有办法做到这一点?
【问题讨论】:
标签: database distributed-computing distributed-system raft
Appache Kafka 引入了 KRaft 模式,可以避免对 Zookeeper 的依赖。
即使在 Docker 的情况下,为了管理全局集群状态,Raft 共识算法也是由管理器节点实现的,而 Docker 引擎以 swarm 模式运行。
还有许多其他数据库使用 raft 算法。 HashiCorp 已经在使用它。
通常,如果集群的领导者由于某种原因崩溃或没有领导者,则基于选举过程的随机节点将成为候选人,选举超时结束。
Raft 是一种分布式共识协议,它满足了在分布式系统中达成共识的关键要求。这将涉及多个服务器同意并决定值。简而言之,就像他们需要大多数服务器才能做出决定一样。这反过来通过选举集群中的领导者来运作。
在 Push 模型的情况下,领导者负责跟踪集群中的复制过程。您还可以对代码进行更改,以便在追随者负责自己的复制时使用 Pull 模型。
【讨论】:
在许多 raft 共识算法中,集群的领导者/控制器负责管理集群的健康,而在你的问题中你建议它引入了一个瓶颈,这是不正确的,因为可能有一个“领导者”到数据存储中的每个数据段,客户端将对其进行处理。如果我们以 kafka 为例,客户端正在与主题分区的领导者(可能是集群内的任何代理)工作,并且数据被复制到同步的追随者,它与领导者/控制器无关集群的
【讨论】: