Java 增量超时;重试后设置始终成功
我在memcached中得到了奇怪的行为,特别是在一致性方面奇怪的行为。这是我的测试:Java 增量超时;重试后设置始终成功,java,timeout,memcached,spymemcached,Java,Timeout,Memcached,Spymemcached,我在memcached中得到了奇怪的行为,特别是在一致性方面奇怪的行为。这是我的测试: @Test public void testMemc() { logger.info("Setting head."); memc.set(env.memcachedQueueKeys().head, 3600, 0); logger.info("Set head; incrementing."); memc.incr(env.memca
@Test
public void testMemc() {
logger.info("Setting head.");
memc.set(env.memcachedQueueKeys().head, 3600, 0);
logger.info("Set head; incrementing.");
memc.incr(env.memcachedQueueKeys().head, 1);
logger.info("Incremented.");
}
以下是输出:
28 11:04:52.932信息;头朝下
2014-01-28 11:04:52.933警告net.spy.memcached.memcached连接:无法重新分发到另一个节点,正在为q:unittest:scannedemails:w重试主节点
28 11:04:52.933信息;带头;递增
2014-01-28 11:04:52.935警告net.spy.memcached.memcached连接:无法重新分发到另一个节点,正在为q:unittest:scannedemails:w重试主节点
失败:testMemc
net.spy.memcached.OperationTimeoutException:Mutate操作超时,无法修改计数器[q:unittest:scannedemails:w]位于net.spy.memcached.MemcachedClient.mutate(MemcachedClient.java:1484)
位于net.spy.memcached.MemcachedClient.incr(MemcachedClient.java:1529)
在me.unroll.emailroller.ActOnScanResultsTest.testMemc(ActOnScanResultsTest.java:295) 我对这种错误的大部分直觉在这里让我失望。以下事情都很奇怪:
这是在高负载服务器上进行的(是的,在负载服务器上运行测试是有点错误的,但是如果它捕获到这样的问题,至少有一些优势)。什么会导致这种持续的失败?只有一个节点。问题是我根本无法连接。这是spymemcached中的一个错误,因为
set
操作没有抛出异常,即使它没有要执行set
的memcached服务器