MongoDB 架构一台服务器多客户端C#

MongoDB architecture one server multiple clients C#

我有一台服务器 运行ning MongoDB 一直在互联网上,一直 运行s。

我在同一个本地网络中有两到五个客户端 运行ning,运行仅当 C# 应用程序 运行ning(每天 3 小时)时。

在无法连接到互联网 MongoDB 服务器的情况下,使客户端 MongoDB 保持最新并使其单独 运行 的最佳策略是什么?

也可能有一个客户端 运行 一周左右未连接,仍应从 Internet MongoDB 服务器更新到最新状态。

复制集是可行的方法吗?或者用 C# 实现客户端的更新过程会更好,因为这不是真正的副本集的想法?

欢迎提出想法。

the clients MongoDB

客户端机器不应该 运行 MongoDB。 MongoDB 不是嵌入式数据库,必须对其进行管理,并且在客户端内存使用方面通常过于激进。

Is a replica set the way to go?

没有。复制本质上是 "always-on"。副本集的成员应该或多或少始终在线。其他机器将不得不保留操作积压 (oplog),以便它们可以在从属设备恢复后重播所有操作,如果从属设备预计会关闭,这是非常低效的。

Or would it be better to implement the update process of the clients in C# since this is not really the idea of a replica set?

是的,这是典型的客户端逻辑。我不明白的是,为什么在这种情况下,客户端不像每个常规 Web 应用程序那样总是从服务器获取数据?如果客户端应该可以离线使用(a la git),那么就会引入一系列不同的挑战,例如问题/应用程序域中的多版本并发控制('branches'),但与使用的数据库关系不大。