1

全部在标题中:我们在 MongoDB 中每个分片需要 2 个 mongos 吗?我不确定确切地了解 mongos 的用途,以及我的网站是否会与他们通信,或者它是否是 MongoDB 内部的东西。

4

2 回答 2

1

如果您设置了集群(使用分片,不要与副本集混淆),那么您必须mongos部署实例。这是一个路由器进程。它知道哪些数据驻留在哪里。应用程序与 对话mongos,它将请求路由到相应的分片。强烈建议不要直接与分片对话。

您必须至少有一个mongos进程。您可以拥有更多,它们的资源占用空间很小。我通常mongos为每个应用程序服务器部署一个。

于 2013-08-27T13:39:40.023 回答
1

mongos 基本上只不过是一个路由器,它从配置服务器收集集群的配置,缓存该配置,并使用它来路由目标,分散和收集分片集群内的操作。它也可以用于聚合,如果聚合查询在您的应用程序中很常见,mongos 可能会占用一些 CPU 和内存,但是,在大多数情况下,它们没有权重并且可以在最小的服务器上运行。

您不需要 2 个 mongos,数量取决于通过该路由器发送的操作。理论上您可以使用一个,但是,这不是很多余并且会导致单点故障,2 使这不太可能。

于 2013-08-27T13:40:55.517 回答