任何人都可以建议任何设计模式来动态区分 java 代码中的 memcahce 实例吗?
以前在我的应用程序中只有一个以这种方式配置的 memcache 实例
第1步:
dev.memcached.location=33.10.77.88:11211
dev.memcached.poolsize=5
第2步:
然后我在代码中访问该内存缓存,如下所示,
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_CUTS, "{}"); resp = MemcachedInterface.gets(MEMCACHED_CUTSS);
我的问题是如果我在我们的架构中引入一个新的 memcache 实例,配置如下,
第1步:
dev.memcached.location=33.10.77.89:11211 dev.memcached.poolsize=5
因此,第一个 memcache 实例位于 33.10.77.88:11211 中,第二个 memcache 实例位于 33.10.77.89:11211 中
直到这没问题……但是……
这种情况下如何处理Step-2和Step-3,动态获取MemcachedInterface。
1)我是否应该在步骤 2 中再使用一个名为 MemcachedInterface2() 的接口
现在真正的问题来了,
我的应用程序中有 4 个网络服务器。以前都在写入 MemcachedInterface(),但现在我将介绍另外一个 memcache 实例,例如:MemcachedInterface2() ws1 和 ws2 应该写入 MemcachedInterface(),ws3 和 ws4 应该写入 ex :MemcachedInterface2()
所以,如果我使用上面提到的另一个名为 MemcachedInterface2() 的接口,
这是一个代码负担,因为我应该将所有使用 WS3 和 WS4 的类更改为 Ex:MemcachedInterface2() 。
任何人都可以建议一种代码更改有限的方法吗?