1

对于我的示例,假设我们有两台服务器。服务器 A 使用服务器 A 上的本地数据库创建连续拉复制。此拉复制的源是服务器 B 上的数据库。

我知道服务器 A 可以通过 _replicator 数据库(如果以这种方式创建)或通过查询 _active_tasks 来监视复制的状态。然而,除了监控 GET 请求之外,服务器 B 是否有任何方法可以知道它是持续拉取复制的来源?

即便如此,我们使用 Cloudant 作为我们的服务器 B,通过代理进行监控也不是一种选择。因此,如果 Cloudant 上的数据库是未在 Cloudant 服务器上创建的复制的一部分,则绝对无法知道它,因为它不会出现在 Cloudant 的 _active_tasks 中,对吗?

编辑:在与 Cloudant Support 的 Samantha Scharr 沟通后,她说“向我们的客户提供日志是我们正在努力解决的问题”。一旦完成,这将不是这样的问题。

谢谢你,保罗

4

1 回答 1

3

不存在这样的。对于 CouchDB 复制过程并不是什么特别的跟踪。

假设您有三个实例ABC。CouchDB 允许您运行复制过程以A将数据从 复制BC. 例如A,复制过程将被明确定义,_active_tasks因为复制是在单独的 Erlang 进程中运行的。但是对于某些情况BC这将被视为一些 HTTP 客户端使用一些有效负载调用其公共 API 资源。他们永远不会知道有人试图让他们保持同步。

理论上,您可以编写一些日志解析或代理,通过分析基于复制协议定义的 HTTP 请求来了解远程复制的运行。但我担心你必须让它足够聪明,不要让他为常客做很多假阳性匹配。

于 2013-08-17T13:26:13.243 回答