2

ReplicaSet への単一の呼び出し接続呼び出しを行う単純な node.js アプリケーションがあります。今日の初めは実際に問題なく動作していましたが、アプリケーションで何も変更されていませんでした。現在、接続が (静かに) 失敗しており、mongod ログに次のように表示されています。

Thu Apr 18 17:16:56 [conn1782026] end connection 10.x.x.x:50720 (40 connections now open)
Thu Apr 18 17:16:57 [initandlisten] connection accepted from 10.x.x.x:50721 #1782027 (41 connections now open)
Thu Apr 18 17:16:57 [initandlisten] connection accepted from 10.x.x.x:50722 #1782028 (42 connections now open)
Thu Apr 18 17:16:57 [initandlisten] connection accepted from 10.x.x.x:50723 #1782029 (43 connections now open)
Thu Apr 18 17:16:57 [initandlisten] connection accepted from 10.x.x.x:50724 #1782030 (44 connections now open)
Thu Apr 18 17:16:57 [initandlisten] connection accepted from 10.x.x.x:50725 #1782031 (45 connections now open)
Thu Apr 18 17:16:57 [initandlisten] connection accepted from 10.x.x.x:50736 #1782032 (46 connections now open)
[conn1782028] SocketException handling request, closing client connection: 9001 socket exception [2] server [10.x.x.x:50722]

これの原因や修正方法を突き止めることができませんでした。

これが私の接続コードです:

var _ = require("underscore");
var db_options = {
    db:{
            w:1,
            native_parser: false
        },
    server:{
        auto_reconnect:true,
        socketOptions: {}
    },
    replSet:{
        rs_name: "my_replset_name",
        readPreference: "secondary"
    },
    mongos: {}
};
db.client.connect("mongodb://server1:27017,server2:27017,server3:27017/my_database", db_options, function(err, _db){
    if(err){
        console.log(err);
    }else{
        _db.collection("my_collection", function(err, collection){
            collection.find({q:1}).toArray(function(err,item){
                if(err){
                    console.log(err);
                }else{
                    _.each(item, function(r){
                        if(!_.isEmpty(r)){
                            // do something with this item!
                            console.log(r._id);
                        }
                    });
                    console.log("Finished.");
                }
            });
        });
    }
});

私は EC2 で自分の ReplicaSet を実行していますが、すべてが相互に正常に接続できます。ReplicaSet への単一の呼び出し接続呼び出しを行う単純な node.js アプリケーションがあります。

誰かがこれについて何か洞察を持っていますか? 何が原因ですか?それを防ぐ方法は?修正方法は?

4

1 に答える 1