聚光灯中越来越多的NOSQL数据库使用主/从模式来提供“可用性”,但是它的作用(至少从我的角度来看)是在链条中创建的弱链接会随时破裂。 - 主人下降,奴隶停止运行。

这是处理大量数据甚至读取/写入的好方法,但从可用性角度看?没那么多...

我从一些NOSQL的了解中了解到,可以将奴隶更改为一名主人,但是在大多数应用程序中,这样做会令人头疼。对?

那么,您如何照顾这种事情呢?主/奴隶数据库如何在现实世界中起作用?

有帮助吗?

解决方案

这是一个相当普遍的问题;您可以指定您专门谈论的数据存储吗?

我一直在与MongoDB合作,它非常优雅地处理。 “副本集”(基本上是主奴隶群集)中的每个成员都有资格成为主人。连接到副本集时,该集合将告诉连接客户端中的每个成员。如果集合中的主脱机,则奴隶将自动选择一个新的主人,并且客户端(由于设置中有所有节点的列表)将尝试新的节点,直到它连接为止。它连接到的节点将通知客户端新主人,客户端切换其连接。这允许完全透明的主/从失败转移,而您的应用程序没有任何更改。

这对于单个连接显然很好,但是重新启动呢? MongoDB驾驶员也对此进行了处理。它可以接受可以尝试连接的节点的列表,并将它们以序列形式尝试,直到找到一个可以连接到的节点为止。一旦连接,它将询问节点其主人是谁,然后将连接转发在那里。

净结果是,如果您建立了复制品集,则可以有效地不必担心任何单个节点爆炸都会使您离线。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top