侦听CouchDB中所有数据库的更改

Ane*_*ale 5 couchdb

我有一个场景,其中在CouchDB中动态创建多个(〜1000-5000)数据库,类似于“每个用户一个数据库”策略。每当用户在任何数据库中创建文档时,我都需要点击现有的API并更新该文档。这不必是同步的。短暂的延迟是可以接受的。我想到了两种解决方法:

  1. 不断聆听_global_changes数据库的更改提要。

    • 获取从Feed中更新的数据库名称。
    • /{db}/_changes使用seq(存储在redis中)调用API。
    • 提取更改的文档,调用我的外部API并更新文档
  2. 将所有数据库连续复制到一个数据库中。

    • 收听/_changes此数据库的提要。
    • 获取更改后的文档,调用我的外部API并更新原始数据库中的文档(我可以轻松地跟踪哪个文档最初属于哪个数据库)

问题:

  1. 以上任何道理有意义吗?它将扩展到5000个数据库吗?
  2. 我该如何处理失败?击打所有文档的API至关重要。

谢谢!