1

これはかなり基本的なことだと思いますが、php ドキュメントで見つけることができませんでした。

MongoClient/MongoDB/MongoCollection/MongoCursor が実際に接続されているホストを特定するにはどうすればよいですか? 私の接続文字列にはマスターとスレーブの csv があり、正常に動作していると思いますが、確認が必要です。

$db->getHost() のようなもので、クエリにデバッグ フックを追加して、読み取りがどのように分散されているかを把握できます。

ありがとう

4

2 に答える 2

0

テストされていませんが、次の行に沿って何かを試してください。 $db->command(array('serverStatus'=>1));

次のような配列を返します。

    "host" : "<hostname>",
    "version" : "<version>",
    "process" : "<mongod|mongos>",
    "pid" : <num>,
    "uptime" : <num>,
    "uptimeMillis" : <num>,
    "uptimeEstimate" : <num>,
    "localTime" : ISODate(""),

いくつか遊ぶ必要があるかもしれません...参照: http://docs.mongodb.org/manual/reference/server-status/#server-status-example-instance-information

および: http://www.php.net/manual/en/mongodb.command.php

于 2013-09-10T17:52:17.820 に答える
0

ドライバーがどの接続を使用しているかを正確に知る簡単な方法はありません。たとえば、レイテンシーや読み取り設定に応じて接続を切り替えるためのロジックがたくさんあります。

これを実現する最善の方法は、ストリーム通知インターフェイスを使用することです。このインターフェイスは、操作のデバッグとログ記録を行う非常に強力な方法を提供します。これは 1.4.0 で導入されましたが、まだ文書化されていません (申し訳ありません!)元のプル リクエストには、ストリーム コンテキストでリスナーをフックできる個々の操作のプロトタイプが記述されています .

このインターフェイスは、今後の 1.5.0 シリーズでも改善され、これらのストリームに基づくあらゆる種類のグッズが追加されます。

于 2013-10-18T23:17:51.767 に答える