我已经在Redis上实现了复制的键/值存储。我有被动复制,其中所有写和读请求都转发给领导者,领导者总是返回为密钥编写的最后一个值。系统使用仲裁。因此,即使有故障的节点或具有网络分区的节点也可以使用。在这种情况下,这些节点中的值不一致。但这并不能防止系统返回最新的值。我有最终的一致性模型还是严格的模型?谢谢
您提到过,这是一个基于仲裁的系统,其中一个节点为领导者。读写请求始终转发给领导者。
为了简单起见,我们假设系统中有5个节点,其中一个是领导者。其他4个节点是辅助节点。
通常基于仲裁的系统在共识协议上工作。因此,在5个节点中,如果3个节点具有最新值,则始终返回最新值就足够了。
这是应该如何工作的方式
因此,仅当5个节点中的3个具有最新值时,写入请求才会成功。在任何时候,其中两个节点可能具有最新值,也可能没有,并可能随后出现。
对于读取,领导者(具有最新的键/值)始终返回响应。
当引导机器由于某些问题而无响应时会发生什么? (例如对于网络错误)
您的系统严格一致。