MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

मोंगोडब खुला कनेक्शन मुद्दा

MongoClient में आंतरिक कनेक्शन पूल है। कनेक्शन की अधिकतम संख्या कॉन्फ़िगर की जा सकती है (डिफ़ॉल्ट 100 है)। आप इसे MongoClientOptions . का उपयोग करके सेट कर सकते हैं इस तरह:

MongoClientOptions options = MongoClientOptions.builder()
                .connectionsPerHost(100)
                .autoConnectRetry(true)
                .build();

और फिर इन विकल्पों को MongoClient को दें (इसे Mongo Java API v2.11.1 में चेक किया गया)। पूल में कनेक्शन खुले रहते हैं (कनेक्शन खोलना और बंद करना आमतौर पर एक महंगा ऑपरेशन होता है) ताकि बाद में उनका पुन:उपयोग किया जा सके।

मैं enum . का उपयोग करके आपके MongoDB क्लाइंट सिंगलटन को भी रिफैक्टर करूंगा उदाहरण के लिए synchronized putting डालने से बचने के लिए इस विधि पर।

यहाँ मेरा क्या मतलब है इसका एक स्केच है:

public enum MongoDB {
    INSTANCE;

    private static final String MONGO_DB_HOST = "some.mongohost.com";
    private Mongo mongo;
    private DB someDB;

    MongoDB() {

        MongoClientOptions options = MongoClientOptions.builder()
                .connectionsPerHost(100)
                .autoConnectRetry(true)
                .readPreference(ReadPreference.secondaryPreferred())
                .build();

        try {
            mongo = new MongoClient(MONGO_DB_HOST, options);
        } catch (UnknownHostException e) {
            e.printStackTrace();
        }

        someDB = mongo.getDB("someDB");
         //authenticate if needed
         //boolean auth = someDB.authenticate("username", "password".toCharArray());
         //if(!auth){
         //     System.out.println("Error Connecting To DB");
         //}        
    }

    public DB getSomeDB() {
        return someDB;
    }

    //call it on your shutdown hook for example 
    public void close(){
        mongo.close();
    }
}

फिर, आप

. के माध्यम से अपने डेटाबेस तक पहुंच सकते हैं
MongoDB.INSTANCE.getSomeDB().getCollection("someCollection").count();



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB के लिए PHP में आईएसओ दिनांक प्रारूप कैसे वापस करें?

  2. Mongoose.js लेनदेन

  3. SQL DB की तुलना में MongoDB बहुत तेज़ क्यों है, इसके लिए कोई विस्तृत और विशिष्ट कारण?

  4. एमजीओ टाइम। टाइम या बूलियन चेक

  5. MongoDB $ के जवाबों का क्रम क्वेरी में?