我们在与app服务器相同的节点上运行memcache。如果Web应用程序需要来自memcached的项目,我们希望出于显而易见的原因访问本地memcache实例,但如果它没有启动,则默认为绑定了几个远程memcache实例的集群地址。
这似乎在spymemcached中有效,它首先使用localhost,除非localhost不可用。
MemcachedClient client = new MemcachedClient(
AddrUtil.getAddresses(
"localhost:11211 memcachecluster:11211"));
我们唯一的问题是,如果localhost
不可用,客户端将转向memcachecluster
,这对于故障转移很好,但是我们有很多内存缓存实例在监听该地址,因此,localhost
变得非常不可能再次使用,即使它重新上线,除非应用服务器被回收,我们通常在部署过程中这样做但不经常这样做。
即使客户端有其他地址,spymemcached是否有办法首选 localhost
,只要它可用,