我试图理解 MongoDB 中副本集的概念。
以 2 个 mongoDB 实例 A(主要)和 B(次要)为例。
如果我的客户很高兴地查询 AI 理解写入被复制到 B 但是如果服务器 A 变得不可访问会发生什么?
虽然就 mongo 复制而言,我可以看到 B 被选为新的主节点,但客户端如何知道现在将其查询传递给 B 而不是 A?这一切都是在mongo内部完成的吗?
我问是因为我的客户的配置有一个指向 A 的 uri,但对 B 没有任何内容。这是正确的吗?
我试图理解 MongoDB 中副本集的概念。
以 2 个 mongoDB 实例 A(主要)和 B(次要)为例。
如果我的客户很高兴地查询 AI 理解写入被复制到 B 但是如果服务器 A 变得不可访问会发生什么?
虽然就 mongo 复制而言,我可以看到 B 被选为新的主节点,但客户端如何知道现在将其查询传递给 B 而不是 A?这一切都是在mongo内部完成的吗?
我问是因为我的客户的配置有一个指向 A 的 uri,但对 B 没有任何内容。这是正确的吗?
以 2 个 mongoDB 实例 A(主要)和 B(次要)为例。
您不应将两个实例用作副本集的一部分。您应该有一个仲裁者或另一个辅助者,以便可以进行选举。
请在此处查看陷阱,在此处查看复制基础知识,在此处查看有关选举的信息。
如果我的客户很高兴地查询 AI 理解写入被复制到 B 但是如果服务器 A 变得不可访问会发生什么?
该服务应该在服务器 B 成为主服务器的情况下进行故障转移。但是,对于两个实例,服务器 B 将无法将自己选为主服务器,因为没有多数。
虽然就 mongo 复制而言,我可以看到 B 被选为新的主节点,但客户端如何知道现在将其查询传递给 B 而不是 A?这一切都是在mongo内部完成的吗?
这通常通过驱动程序执行,因为驱动程序知道副本集配置。请在此处查看相关驱动程序文档(取决于您使用的驱动程序)。