CouchDb 是否适合在客户端桌面上使用 (Windows 10)?

Is CouchDb suitable for use on client desktops (Windows 10)?

我想通过以下方式支持我的 Windows 10 桌面应用程序的用户:

  1. 本地数据(不必每次需要新数据时都从云端执行提取)
  2. 离线支持
  3. 使用云数据库进行复制

可能有多个用户(大约 10-100,但不是 1000)同时编辑同一个数据库。我会 运行 CouchDb 作为一项服务(即在我的应用程序的单独进程中)。

为了实现上述目标,我正在考虑在每个客户端桌面 PC 上安装 CouchDb(全部复制到单个主云 CouchDb 实例)以及我的应用程序以实现上述目标。

我追求这种思路的原因之一是它允许我的应用程序代码主要以与本地数据和 sync/replication 交互的方式编写(这可能非常复杂) 可以由 CouchDb 处理。

我正在使用 CouchDb 来替代我经常看到的由 sqlite 完成的事情,但我真的想要 CouchDb 的复制能力(sqlite 没有)。

以上是我可以期待 CouchDb 表现良好的场景还是有什么我没有考虑到的?

CouchDB 有时被称为“附加数据库的复制协议”。这听起来适合您的用例。但是,安装 CouchDB(或任何外部 database/service),特别是作为客户端应用程序的一部分,并不一定是微不足道的。这并不意味着应该避免它——这只是在做出选择时要考虑的复杂性。

您可以考虑为您的客户选择更轻量级的选项。 PouchDB 是 Web 应用程序的首选解决方案,通常是移动应用程序,因为它与 CouchDB 同步,但资源需求要低得多(以非多租户为代价)。对于桌面应用程序,这可能是合适的。

最终,CouchDB(或 PouchDB,或 PouchDB Server 等)是否适合您的用例取决于您愿意做出哪些权衡。

我们有多个客户成功地做到了这一点。这是 CouchDB 的推荐用例。限制因素将是云虚拟机配置,但 100 到 1000 台客户端在合适的虚拟机设置上应该没有问题。