Marklogic 集群中的最小节点数是多少?

Marklogic 集群中的最小节点数是多少?,marklogic,Marklogic,文档中说是一个集群。我们能够在两台主机上运行,测试故障转移似乎起到了作用 我们在集群中设置了两个主机(A、B),每个主机有一个林。A上的森林是主森林。B上的森林是复制森林。我们将森林连接到数据库。此时,林“A”的状态为“打开”,而“B”的状态为“同步复制” 然后我们关闭主机A。林B的状态变为“打开” 尽管集群中只有两台主机,但故障切换似乎仍然有效。这是预期的行为吗?要更好地理解问题,请尝试此操作。 让主机B复制所有数据库,包括安全数据库。 (在B上放置一个林,它是a上匹配林的副本)。 您的描述与

文档中说是一个集群。我们能够在两台主机上运行,测试故障转移似乎起到了作用

我们在集群中设置了两个主机(A、B),每个主机有一个林。A上的森林是主森林。B上的森林是复制森林。我们将森林连接到数据库。此时,林“A”的状态为“打开”,而“B”的状态为“同步复制”

然后我们关闭主机A。林B的状态变为“打开”


尽管集群中只有两台主机,但故障切换似乎仍然有效。这是预期的行为吗?

要更好地理解问题,请尝试此操作。 让主机B复制所有数据库,包括安全数据库。 (在B上放置一个林,它是a上匹配林的副本)。 您的描述与所谓的“本地磁盘故障切换”匹配

(这个术语具有误导性,磁盘不需要是“本地”的,它们可以在SAN上,也可以是物理远程的——这个术语意味着每个主机只能看到自己的磁盘,而不是共享磁盘)

测试您是否可以在A或B上可靠地登录和执行操作 两人都看到了结果

理想情况下,通过制作一个简单的应用程序, 就像每次单击按钮都会更新文档一样。 或者使用REST服务并测试您可以在两台主机上执行相同的操作

现在断开A和B之间的网络。 (拔出电线或禁用网络更改路由器设置,尽可能简单。)

现在在两台主机上试用您的应用程序。 分别转到每个主机的管理控制台,查看它认为自己和其他主机的状态。您希望状态显示什么?
A和B都无法通信,因此他们都认为另一台主机出现故障。 没有第三台主机进行仲裁。。。你期望或希望结果是什么? 两个主机都应该停止工作吗?或者两台主机都应该继续工作? 还是应该只有一个工作?哪一个?他们将如何决定? “故障转移”主机是否应该因为认为主机出现故障而接管主机? 或者,主服务器是否应该确定故障转移主机出现故障? 这两种选择都是正确的——在没有其他选择的情况下, 您希望群集继续运行

现在试试这个 使用应用程序在两个系统上添加或修改文档。这样行吗? 在每台主机上对同一文档进行不同的更改。
你希望每个应用程序都能正常运行吗?它应该,这就是故障转移的目的。 但是每个人都认为对方已经死了,所以他们不试图复制,而是 他们都是大师(或者他们都失败了——他们看不出有什么不同) 因此,没有办法选择哪个更好)

现在,在A和B都有不同的更改后重新连接网络。 你预计会发生什么? 将复制A和B中的哪些更改? B会放弃做主人,把它的变化交给A吗? 或者A会意识到B刚刚恢复并将其更改发送给B吗? 两个文件都变了,怎么办

另一个(更复杂但有启发性的)实验是在您和集群之间设置负载平衡器。这将随时间向两台主机发送请求

现在断开主机之间的网络连接,但不要断开load Balancer和每个主机之间的连接。 运行你的应用程序。。。它仍然相信它只是像以前一样与“一位主持人”交谈。 但根据负载情况,更改将发送到A和B。 您希望用户体验是什么? 如果请求1更新了A,那么请求2将从B获取文档。。。 用户(和应用程序)会得到不一致的结果——如果有的话。 这不好

发生故障转移。。。但是整个系统是不一致的,并且没有意识到这一点。 在你尝试的实验中它会起作用,因为你知道只能和A说话。 但这不是故障切换的目的。您可以通过RAID或分布式文件系统或简单的连续备份来实现这一点

故障转移是指能够处理系统脱机或彼此断开连接 无论您向哪个主机发送请求,集群作为一个整体仍然可以正常工作并保持一致

使用3台主机,它可以从所有3台主机工作到所有3台完全脱机或断开连接, 它不会以不一致的方式运行。对任何主机的请求要么成功并与其余主机保持一致,要么失败(因为主机处于脱机状态,或者它已确定它不再是集群的一部分)

使用2台主机(或任意偶数台主机),您无法同时可靠地实现一致性和复制的“故障切换”

您可以在集群之间进行“复制”(请参阅数据库复制和灵活复制), 偶数1个节点的群集。。但这与“故障转移”不同 复制是一种方法。。主设备向复制副本发送数据。 如果其中一个失败,您可以决定向另一个发送流量。。。但在那一点上 稍后您需要手动干预以尝试使数据恢复同步

你可以从中看到不同之处

要使故障切换正常工作,群集至少需要三台主机。如果只有两台主机,则存在“”问题的危险,例如,如果网络链路出现故障