我有一台运行MongoDB的服务器,它在互联网上,一直运行。
我有两到五个客户端在同一个本地网络中运行,只在C#应用程序运行时运行(每天3小时)。
使客户端MongoDB保持最新并使其单独运行而无需连接到Internet MongoDB服务器的首选策略是什么?
也可能发生一个客户端运行一周左右,并且仍应从Internet MongoDB服务器更新到最新状态。
副本设置的方式是什么?或者在C#中实现客户端的更新过程会更好吗,因为这不是副本集的想法吗?
欢迎提出意见。
答案 0 :(得分:0)
客户端MongoDB
客户端计算机不应运行MongoDB。 MongoDB不是嵌入式数据库,必须进行管理,并且在客户端的内存使用方面通常过于激进。
副本设置的方式是什么?
没有。复制基本上是“永远在线”。副本集的成员在任何时候都或多或少都在线。其他机器必须保留积压的操作(oplog),这样一旦奴隶重新启动它们就可以重放所有这些操作,如果预期奴隶数量下降,那么效率极低。
或者在C#中实现客户端的更新过程会更好吗,因为这不是副本集的想法吗?
是的,这是典型的客户端逻辑。我不明白的是,在这种情况下,客户端总是不像每个常规Web应用程序那样从服务器获取数据吗?如果客户端应该可以脱机使用(la git),那么会引入一系列不同的挑战,例如多版本并发控制('branches'),它位于问题/应用程序域中,但与之几乎没有关系使用的数据库。