在过去的几个月里,我们已经收取了许多我们在Cloudant上没有预料到的HTTP请求.通过在本地查看CouchDB控制台,我发现每次连续复制时,每隔5秒钟就会发出一次GET请求.
我已经停止了在Futon中可以找到的所有连续复制,并且我对我们拥有的每个Cloudant帐户都做了相同的操作.通过查看Cloudant的仪表板,我看到GET请求减少了(数千个),但没有达到合理的水平.所以必须有一些连续的复制,但我找不到它们.
如何找到并停止剩余的复制?
小智 1
要识别可能对用户隐藏的连续复制,最好的方法是查询curl命令,调用_active_tasks,并应用jq过滤器以仅显示那些“复制”类型的任务。
也就是说,在命令行中,运行以下形式的命令:
curl 'https://username:password@username.cloudant.com/databasename/_active_tasks | jq 'map(select(.type == "replication"))'
Run Code Online (Sandbox Code Playgroud)
可以应用相同的方法来检索其他活动任务(view_compaction、database_compaction 等)
也就是说,一般来说,使用 _replicator 数据库时,基于 Cloudant 的复制要顺畅得多。为此:
1) 作为一项初始一次性任务,创建数据库:
https://username.cloudant.com/_replicator
Run Code Online (Sandbox Code Playgroud)
2) 然后,为每个复制创建一个文档。如果文档中有“连续”:true,它将被视为连续。
3) 然后,要取消复制,您只需删除该文档即可。
所有上述命令(例如创建和删除文档)在 Cloudant 网站以及整个 Stack Overflow 上都有详细记录,因此请参阅那里以了解更多详细信息。
最后,必须添加usr_ctx字段,以便触发复制并在您的用户上下文中运行。这很重要,因此它会在您查询 _active_tasks 时显示,否则它将匿名运行,并且仅在管理员查询时才显示在 _active_tasks 中。这正是原海报所发生的情况。
| 归档时间: |
|
| 查看次数: |
523 次 |
| 最近记录: |