Javaコードでmemcahceインスタンスを動的に区別するためのデザインパターンを提案できる人はいますか?
以前の私のアプリケーションでは、このように構成されたmemcacheインスタンスは1つだけです
ステップ1:
dev.memcached.location = 33.10.77.88:11211
dev.memcached.poolsize = 5
ステップ2:
次に、次のようにコードでそのmemcacheにアクセスしています。
private MemcachedInterface() throws IOException {
String location =stringParam("memcached.location", "33.10.77.88:11211");
MemcachedClientBuilder builder = new XMemcachedClientBuilder(AddrUtil.getAddresses(location));
}
次に、上記のMemcachedInterface()を使用して、コードで次のようにそのmemcacheを呼び出しています。
ステップ-3:
MemcachedInterface.getSoleInstance();
そして、私はそのMemcachedInterface()を使用して、次のようにデータを取得/設定しています。
MemcachedInterface.set(MEMCACHED_CUSTS、 "{}"); resp = MemcachedInterface.gets(MEMCACHED_CUSTS);
私の質問は、アーキテクチャに新しいmemcacheインスタンスを導入した場合、構成は次のように行われます。
ステップ1:
dev.memcached.location = 33.10.77.89:11211 dev.memcached.poolsize = 5
したがって、最初のmemcacheインスタンスは33.10.77.88:11211にあり、2番目のmemcacheインスタンスは33.10.77.89:11211にあります。
これまでは大丈夫です...しかし....
この場合のステップ2とステップ3の処理方法、MemcachedInterfaceを動的に取得するには。
1)ステップ2でMemcachedInterface2()と呼ばれるもう1つのインターフェイスを使用する必要があります
今、実際の問題が発生します、
私のアプリケーションには4つのWebサーバーがあります。以前はすべてMemcachedInterface()に書き込んでいますが、ここでもう1つのmemcacheインスタンスを紹介しますex:MemcachedInterface2()ws1とws2はMemcachedInterface()に書き込み、ws3とws4はexに書き込む必要があります:MemcachedInterface2()
したがって、上記のようにMemcachedInterface2()と呼ばれるもう1つのインターフェイスを使用する場合、
WS3とWS4を使用するすべてのクラスをEx:MemcachedInterface2()に変更する必要があるため、これはコードの負担になります。
誰かが限られたコード変更で1つのアプローチを提案できますか?