DB/MongoDB

mongodb - connection pool

linuxism 2013. 5. 26. 12:45


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