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