我希望通过以下方式为Windows 10桌面应用程序的用户提供支持:
1.本地数据(无需每次需要新数据时都从云中提取数据)
1.离线支持
1.使用云数据库进行复制
可能会有多个用户(数量级为10-100,但不是1000)同时编辑同一个数据库。我会将CouchDb作为服务运行(即在我的应用程序的单独进程中)。
为了实现上述目标,我正在考虑在每个客户端桌面PC上安装CouchDb(全部复制到单个主云CouchDb示例)以及我的应用程序,以实现上述目标。
我采用这种思路的原因之一是,它将允许我的应用程序代码主要以与本地数据交互的方式编写,并且同步/复制(可能相当复杂)可以由CouchDb处理。
我正在使用CouchDb作为我经常看到的由sqlite完成的东西的替代品,但我真的希望CouchDb的复制能力(sqlite没有)。
在上述情况下,我是否可以期望CouchDb表现良好,或者是否存在我未考虑的问题?
2条答案
按热度按时间0aydgbwb1#
我们有多个客户端成功地完成了这一点。这是CouchDB的推荐用例。限制因素将是云虚拟机配置,但100到1000个客户端在一个体面的虚拟机设置上应该没有问题。
i2byvkas2#
CouchDB有时被称为“一个附加了数据库的复制协议”。这听起来很适合您的用例。然而,安装CouchDB(或任何外部数据库/服务),特别是作为客户端应用程序的一部分,并不一定是微不足道的。这并不意味着应该避免它--只是在做出选择时需要考虑的复杂性。
你可以考虑为你的客户端选择更轻量级的解决方案。PouchDB是Web应用的首选解决方案,通常也是移动的应用的首选解决方案,因为它与CouchDB同步,但资源需求低得多(代价是不能多租户)。对于桌面应用来说,这可能是合适的。
最终,CouchDB(或PouchDB,或PouchDB Server等)是否适合您的用例取决于您愿意做出哪些权衡。