I have an application with the following architecture:
主 couchdb 需要在用户之间共享数据。 EG:如果 user-1 将数据写入云,则会复制到主服务器并返回到 user-2 和 user-3。
然而,随着用户基数的增加,云用户 couchDB 的数量也会增加,这导致云用户 couchDB 和主 couchDB 之间存在大量复制链接。
我相信这会导致一个巨大的瓶颈。有没有更好的方法来解决这个问题?
你是对的:CouchDB 的每用户 db 模式可能会遇到可扩展性问题。这是因为 CouchDB 复制器将难以满足要求处理的同步复制作业的数量。如果您知道您的用户数量会随着时间的推移而增长,那么值得考虑将许多用户的数据复用到单个(或少数)数据库中的架构。
这使得身份验证和复制变得更加棘手,因为 CouchDB 仅对每个数据库进行身份验证,并且您可能最终需要中间的另一层来解决此问题。
一种方法是使用复制代理,例如克劳德特使 https://github.com/cloudant-labs/envoy/blob/master/README.md,这让您的 PouchDB 应用程序保持不变 - 客户端的模型仍然是“每用户 db”,但实际写入会转到单个数据库服务器端。这也意味着您可以避免服务器端复制到单个主数据库,因为您已经在主 Envoy 数据库中拥有了该数据库。
免责声明:我是 Envoy 的作者之一。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)