Mongos 连接到副本集

Mongos 连接到副本集

这是一个非常基本的问题,但我找不到任何答案。我知道您使用 mongos 与分片集合交互。但是,如果我有一个未分片的副本集,我该如何设置 mongos 以便我的应用程序可以同时使用该集合中的主副本和辅助副本?是否有必要使用 mongos,或者让我的应用程序的 mongo 驱动程序(在本例中为 php)连接到集合中的一台服务器,它会自动枚举集合中的其他成员并连接到它们?

答案1

您可以直接从驱动程序连接到副本集,mongos除非您在分片环境中运行,否则不需要。驱动程序通常使用isMaster命令来确定集合的状态,并根据需要向主集合和从集合发送命令(取决于阅读偏好设置(如果您使用的是最新版本)。如果主服务器发生故障,驱动程序还将处理自动故障转移(当然会有一点延迟)。

一旦有人尝试分片,他们更喜欢连接到一般mongos,并让它管理与集合的通信,正如你从中看到的那样这个请求。目前,要以mongos这种方式使用,您需要配置分片环境的最少部分,即使您只有(实际上)一个分片。

此外,偶尔人们会知道他们将来必须进行分片,并从一个分片开始以满足未来的需求,这样他们除了在配置中添加分片之外不需要做任何事情。

一般而言,mongos运行的主要先决条件是config数据库(以及您的config服务器)已启动并运行。您传递给的连接字符串mongos将是这些服务器的列表config(每次启动时都应该相同mongos),并且至少有一个(三个中的)必须已启动并正常运行才能mongos运行。

相关内容