mongodb - connection pool
mongodb jdbc 를 이용한 connection pooling을 구현하는 방법에 대하여 알아보도록 하겠습니다.
일단 무지 짧고 무지 쉽습니다.
code
package co.kr.softcast.MobilePush.db;
import java.net.UnknownHostException;
import java.util.Map;
import co.kr.softcast.MobliePush.util.PropertyUtil;
import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.mongodb.Mongo;
import com.mongodb.MongoOptions;
public class MongoDB {
private static MongoDB mongoDB;
private static Mongo m;
private static MongoOptions options;
private static DB db;
public static MongoDB getInstance() throws Exception{
if(mongoDB == null){
options = new MongoOptions();
options.connectionsPerHost = 20;
m = new Mongo( "dev.softcast.co.kr" , options );
db = m.getDB( "test" );
MongoDB mongoDB = new MongoDB();
mongoDB.setOptions(options);
mongoDB.setM(m);
mongoDB.setDb(db);
}
return mongoDB;
}
public static Mongo getM() {
return m;
}
public static void setM(Mongo m) {
MongoDB.m = m;
}
public static MongoOptions getOptions() {
return options;
}
public static void setOptions(MongoOptions options) {
MongoDB.options = options;
}
public static DB getDb() {
return db;
}
public static void setDb(DB db) {
MongoDB.db = db;
}
}
위 빨간 부분이 connection pool을 설정하는 부분입니다. 무지 쉽지 않습니까??
그럼 정말 풀링이 되는지 테스트 해보도록 하겠습니다.
step1. MongoDB 조회
일단 Eclipse로 mongoDB 조회를 하는 테스트 프로그램을 짜 돌려보았습니다.
step 2. Server 와 연결 확인
20개 connection pool 연결
TCP 연결을 유지한채 데이터만 전송
mongo>db.serverStatus() 명령확인
현재 커넥션 갯수확인 ( 다른연결 2개 제외하면 20개)
이상 MongoDB Connection Pool Test를 마치도록 하겠습니다.
출처 - http://rocksea.tistory.com/113