【问题标题】:CouchDB db-per-user with shared data scalability具有共享数据可扩展性的 CouchDB db-per-user
【发布时间】:2018-02-21 16:04:35
【问题描述】:

我有一个具有以下架构的应用程序:

需要主 couchdb 在用户之间共享数据。 EG:如果 user-1 将数据写入云,这会复制到 master 并返回到 user-2 和 user-3。

但是,随着用户群的增加,云用户 couchDB 的数量也在增加,这导致云用户 couchDB 和主 couchDB 之间存在大量复制链接。

我相信这会导致一个巨大的瓶颈。有没有更好的方法来解决这个问题?

【问题讨论】:

    标签: synchronization couchdb replication scalability pouchdb


    【解决方案1】:

    你说得对:CouchDB 的每用户 db 模式可能会遇到可伸缩性问题。这与 CouchDB 复制器将难以为它被要求处理的同时复制作业的数量提供服务这一事实有关。如果您知道您的用户数量会随着时间的推移而增长,那么值得考虑将许多用户的数据复用到单个(或少数几个)数据库中的架构。

    这使得身份验证和复制变得更加棘手,因为 CouchDB 仅对每个数据库进行身份验证,您最终可能会在中间使用另一层来解决此问题。

    一种方法是使用复制代理,例如Cloudant Envoy,它可以让您的 PouchDB 应用程序保持不变——客户端的模型仍然是“db-per-user”,但实际写入到单个 DB服务器端。这也意味着您可以避免将服务器端复制到单个主数据库中,因为您已经在主 Envoy 数据库中进行了复制。

    免责声明:我是 Envoy 的作者之一。

    【讨论】:

      猜你喜欢
      • 2018-07-13
      • 2012-05-20
      • 1970-01-01
      • 1970-01-01
      • 2023-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多