MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

masalah koneksi terbuka mongodb

MongoClient memiliki kumpulan koneksi internal. Jumlah maksimum koneksi yang dapat dikonfigurasi (default adalah 100). Anda dapat mengaturnya dengan menggunakan MongoClientOptions seperti ini:

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

Dan kemudian berikan opsi ini ke MongoClient (memeriksanya di Mongo Java API v2.11.1). Sambungan di kumpulan dipertahankan terbuka (membuka dan menutup koneksi biasanya merupakan operasi yang mahal) sehingga nantinya dapat digunakan kembali.

Saya juga akan memfaktorkan ulang klien tunggal MongoDB Anda menggunakan enum misalnya untuk menghindari menempatkan synchronized pada metode ini.

Berikut adalah sketsa yang saya maksud:

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();
    }
}

Kemudian, Anda dapat mengakses database Anda melalui

MongoDB.INSTANCE.getSomeDB().getCollection("someCollection").count();



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Bagaimana saya bisa menulis objek BsonDocument ke dalam file, dan membacanya lagi, menggunakan Java

  2. Mongoid - batasi permintaan yang berbeda

  3. Hubungkan ke beberapa host mongo db dan autentikasi menggunakan database yang berbeda di boot musim semi

  4. Temukan dokumen dengan ObjectID di mongoDB

  5. mongodb beberapa dokumen masukkan atau perbarui dengan kunci unik