使用CouchDB从只读服务器拉取复制

时间:2011-11-29 10:51:08

标签: couchdb replication

我有一个CouchDB服务器,它在前端代理后面运行,只允许GETHEADOPTIONS个请求。 <{1}},POSTPUT都是不允许的。

当我在本地计算机上设置复制以从远程服务器提取时,它可以正常工作,直到它到达终点,当它尝试DELETEPOST时。这将返回/_ensure_full_commit响应并导致复制崩溃,并在开始时重新启动。

我可以阻止CouchDB复制调用401 Unauthorized,还是需要更改前端代理配置以允许/_ensure_full_commit到此网址?

1 个答案:

答案 0 :(得分:1)

看起来复制器代码总是尝试在复制检查点过程中提交给BOTH服务器:https://github.com/apache/couchdb/blob/master/src/couch_replicator/src/couch_replicator.erl#L695

因此,目前最快的解决方案是在代理级别伪造“成功”响应或简单地通过该请求,特别是因为我们都不知道它是否“必要”。

但是我也强烈建议你ask on the mailinglist and/or file a bug关于这一点 - 你似乎很奇怪你不能只使用GET请求进行拉动复制。

更新:记得最近重写了最近登陆开发分支的复制器代码,所以另一个考虑因素是首先试用new replicator in 1.2

相关问题