1

私の例では、2 つのサーバーがあるとします。サーバー A は、サーバー A のローカル データベースを使用して連続プル レプリケーションを作成します。このプル レプリケーションのソースは、サーバー B のデータベースです。

サーバー A は、_replicator データベース (そのように作成されている場合) または _active_tasks をクエリすることによって、レプリケーションのステータスを監視できることを知っています。それにもかかわらず、GET 要求を監視する以外に、サーバー B が継続的なプル レプリケーションのソースであることを知る方法はありますか?

その場合でも、サーバー B として Cloudant を使用しているため、プロキシ経由の監視はオプションではありません。したがって、Cloudant 上のデータベースが Cloudant サーバー上で作成されていないレプリケーションの一部である場合、Cloudant の _active_tasks には表示されないため、それを知る方法はまったくありません。正しいですか?

編集: Cloudant サポートの Samantha Scharr と連絡を取った後、彼女は「ログをクライアントが利用できるようにすることは、私たちが取り組んでいる懸案事項です」と述べました。これが完了すると、これはそれほど問題にはなりません。

ありがとう、ポール

4

1 に答える 1

3

そのようなはありません。CouchDB のレプリケーション プロセスは、追跡する特別なものではありません。

ABおよびの 3 つのインスタンスがあるとしCます。CouchDB では、レプリケーション プロセスを実行しAて、データを からBにレプリケートできますC。たとえば、レプリケーションは個別の Erlang プロセス内で実行Aされるため、レプリケーション プロセスは明示的に定義されます。_active_tasksしかしBCインスタンスの場合、これは一部の HTTP クライアントが何らかのペイロードでパブリック API リソースを呼び出しているように見えます。彼らは、誰かが同期を維持しようとしていることを決して知りません.

理論的には、レプリケーション プロトコルの定義に基づいて HTTP 要求を分析することで、実行中のリモート レプリケーションを認識するログ解析またはプロキシを作成できます。しかし、彼が通常のクライアントに対して多くの偽陽性の一致を行わないようにするには、十分に賢くする必要があると思います.

于 2013-08-17T13:26:13.243 に答える