okuyama.imdst.client
クラス OkuyamaClientFactory

java.lang.Object
  上位を拡張 okuyama.imdst.client.OkuyamaClientFactory

public class OkuyamaClientFactory
extends java.lang.Object

OkuyamaClient用のコネクションプール.
本クラスを利用してOkuyamaClientの管理を行うことで、
Clientのプーリングが行われ、接続のコスト削減につながる.

利用方法)
// MasterNodeの接続情報を作成して、OkuyamaClientFactory.getFactoryに渡すことでコネクションプールを取得
// ここで取得されるインスタンスはシングルトンとなり全てのスレッドで唯一となる
// スレッド毎に新しいFactoryを利用したい場合はgetNewFactoryメソッドを利用する
String[] masterNodes = {"192.168.1.1:8888","192.168.1.2:8888"};
OkuyamaClientFactory factory = OkuyamaClientFactory.getFactory(masterNodes, 20);

// プールからClientを取得
OkuyamaClient okuyamaClient = factory.getClient();

// 以降は通常のOkuyamaClientの利用方法と同様
String[] getResult = okuyamaClient.getValue("Key-XXXX");
if (getResult[0].equals("true")) {
System.out.println(getResult[1]);
}

// close()を呼び出すことでコネクションプールに返却される
okuyamaClient.close();

// アプリケーションそのものを終了する際は以下でFactoryを終了させて全てのコネクションを破棄する
// 終了後も再度getFactoryを呼び出せば新たにfactoryが再生成される
factory.shutdown();



作成者:
T.Okuyama

フィールドの概要
static java.util.concurrent.ConcurrentHashMap factoryMap
           
static java.lang.Object lock
           
 
メソッドの概要
 OkuyamaClient getClient()
          OkuyamaClientを取得する.
static OkuyamaClientFactory getFactory(java.lang.String[] masterNodeInfos, int maxClients)
          OkuyamaClientのプールを取得する.
static OkuyamaClientFactory getNewFactory(java.lang.String[] masterNodeInfos, int maxClients)
          OkuyamaClientのプールを取得する.
 void shutdown()
          Factoryを停止します.
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

lock

public static java.lang.Object lock

factoryMap

public static java.util.concurrent.ConcurrentHashMap factoryMap
メソッドの詳細

getFactory

public static OkuyamaClientFactory getFactory(java.lang.String[] masterNodeInfos,
                                              int maxClients)
                                       throws OkuyamaClientException
OkuyamaClientのプールを取得する.
本メソッドは接続先情報単位で唯一のFactoryのインスタンスが返される.
本メソッドから取得したOkuyamaClientFactoryのインスタンスからgetClientにてOkuyamaClientを取得して利用する.

パラメータ:
masterNodeInfos - 接続するMasterNodeの情報
1つで複数でも、配列にてMasterNodeの情報を指定する。フォーマットは"アドレス:Port"である
例){"192.168.1:1:8888", "192.168.1.2:8888", "192.168.1.3:8888"}
maxClients - 作成されるコネクションプール上でプーリングされる最大数
例外:
OkuyamaClientException - MasterNodeの指定間違い

getNewFactory

public static OkuyamaClientFactory getNewFactory(java.lang.String[] masterNodeInfos,
                                                 int maxClients)
                                          throws OkuyamaClientException
OkuyamaClientのプールを取得する.
!!本メソッドは呼び出し毎にコネクションプールが作成される!!.
本メソッドから取得したOkuyamaClientFactoryのインスタンスからgetClientにてOkuyamaClientを取得して利用する.

パラメータ:
masterNodeInfos - 接続するMasterNodeの情報
1つで複数でも、配列にてMasterNodeの情報を指定する。フォーマットは"アドレス:Port"である
例){"192.168.1:1:8888", "192.168.1.2:8888", "192.168.1.3:8888"}
maxClients - 作成されるコネクションプール上でプーリングされる最大数
例外:
OkuyamaClientException - MasterNodeの指定間違い

getClient

public OkuyamaClient getClient()
                        throws OkuyamaClientException
OkuyamaClientを取得する.
内部的に接続状態の確認を行ったのちに返却される
プールに1つもOkuyamaClientが存在しない場合は新規に作成されて返される
本メソッドから取得したOkuyamaClientのcloseメソッドを呼び出すことでプールに返却される

例外:
OkuyamaClientException - 有効なOkuyamaClientの返却に失敗

shutdown

public void shutdown()
Factoryを停止します.
本メソッドを呼び出した後のFactoryインスタンスは利用できなくなります。

パラメータ:
client -