有人可以回答吗? 如果节点出现故障,故障转移时间是多少?我确实看到需要 2 到 3 秒,但我们是否可以控制使其比这更快?如果是的话,多少钱。通常,我们不能在应用程序队列上承受这种影响,因为它是如此敏感。
最佳答案
在YugabyteDB中,表被共享到tablet中,并且tablet使用Raft(分布式共识协议(protocol))在节点之间进行复制。 Raft 还用于为每个平板电脑选举该平板电脑的同级之一作为领导者。
在典型情况下,一个节点将有许多平板电脑——一些充当追随者角色,一些充当领导者角色。当节点发生故障时,该节点作为领导者的平板电脑可能会有少量不可用,直到为这些平板电脑选举出新的领导者。 (注:YugabyteDB是CP数据库)。当平板电脑的追随者在一定数量的心跳内没有收到领导者的消息时,就会触发领导者(重新)选举。控制这一点并因此确定故障转移时间的旋钮是以下 gflags:
raft_heartbeat_interval_ms
(默认 500 毫秒)
leader_failure_max_missed_heartbeat_periods
(6)
换句话说,默认情况下,如果追随者没有听到领导者的 6 次心跳,则在 6 * ~500 毫秒(默认心跳间隔)后,即大约 3 秒后,将选举新的领导者。
可以覆盖上述设置以减少故障转移时间。然而,必须小心不要做得太激进,因为这可能会导致领导者不必要地进行乒乓球运动,即使是很小的网络问题也是如此。
关于yugabytedb - Yugabyte 故障转移时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59797726/