运行 分片集群的 mongos 客户端的正确方法是什么?

What's the proper way of running a mongos client for a sharded cluster?

我有一个 mongodb 集群正在运行 运行ning。我想设置一个客户端 (mongos) 以连接到来自 ubuntu 的配置服务器。大多数说明只是对 运行 这个命令说:

mongos --configdb cfg0.example.net:27019,cfg1.example.net:27019,cfg2.example.net:27019

这个命令运行是服务吗?当我退出 shell 时,进程是否仍然是 运行ning?如果进程宕机会怎样? 运行将该客户端作为服务的正确方法是什么?

您可以使用 --forkinit 脚本来关闭此 运行 作为服务的 post 终端会话。

如果进程停止,则您的应用程序无法连接到分片集。它将根本无法连接到您的数据库。这就是(不是唯一的原因)为什么你应该在 mongos 实例中有良好的冗余。

我个人倾向于每个应用程序服务器有一个 mongos,但是,这完全取决于偏好。另一种选择是拥有一组负载平衡的 mongos 个实例。