MongoDB 3.4でReactiveMongo 0.12を使用しています。 MongoDBとの接続プールのしくみを理解しようとしています。ReactiveMongo接続プーリングはMongoDBサーバー接続に関してどのように機能しますか?
私はremoteAddrr:27017
にMongoDBをインストールしました。私はReactiveMongoを自分のコードで以下のように使用しています。 documentationによれば
import reactivemongo.api.MongoConnection
val driver = new reactivemongo.api.MongoDriver
val connection = driver.connection(List("remoteAddrr:27017"))
:
MongoConnection
は論理接続ではなく、物理的一方(ないネットワークチャネル)です。それは実際に接続プールです。デフォルトでは、MongoConnection
は各ノードに10の物理ネットワークチャネルを作成します。
私のコードでは、ReactiveMongo接続プールがノードremoteAddrr:27017
への10の物理接続を確立すると仮定します。
しかし、私はモンゴシェル内serverStatusをテストし、
ので>var status = db.serverStatus()
> status.connections
{ "current" : 20, "available" : 51180, "totalCreated" : 66 }
、どのようにそれが現在のシェルセッションで20個の接続があることが可能ですか? 使用可能な未使用の着信接続の数はどのように51180になる可能性がありますか? サーバーに作成されたすべての着信接続の数がどのようにして66になったのかもわかりません。
まあ(私はここで推測しています)、db.serverStatusはクライアントの*接続/セッションのステータス*ではなく、サーバー*のステータス*です。 – GPI
名前 'serverStatus' BTWで示されているように、むしろそのようなコマンドを使用するのではなく、単一のクライアントが接続されたサーバログを見てください。 – cchantep
@GPIしたがって、mongoサーバーの接続数がクライアント側のドライバーによって開かれた接続数によって異なることを理解していませんか? – oblivion