我正在使用aspymemcached java客户端来评论membase服务器:
public static void main(String[] args) throws Exception{
MemcachedClient client = null;
try {
URI server1 = new URI("http://192.168.100.111:8091/pools"); //primary
URI server2 = new URI("http://127.0.0.1:8091/pools"); //secondry
ArrayList<URI> serverList = new ArrayList<URI>();
serverList.add(server1);
serverList.add(server2);
client = new MemcachedClient(serverList, "bucketName", "");
client.set("spoon", 50000, "Hello World!"); //after this line i am going to down server 1 (192.168.100.111:8091/pools)
Thread.sleep(35000);
Object obj = client.get("spoon"); // on excetuting this line value should returns from server 2
} catch (Exception e) {
log.error("Exception in initializing membase connection:" + e.getMessage(), e);
}
}
我有2个成员服务器在复制时运行。现在,如果主(server1)节点发生故障,那么客户端不会从辅助节点(server2)读取值,并且我收到以下错误:
2017-03-20 07:51:55,655 ERROR [stderr] (Memcached IO over {MemcachedConnection to /127.0.0.1:8091 /192.168.100.111:8091}) at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
2017-03-20 07:51:55,655 ERROR [stderr] (Memcached IO over {MemcachedConnection to /127.0.0.1:8091 /192.168.100.111:8091}) at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717)
2017-03-20 07:51:55,655 ERROR [stderr] (Memcached IO over {MemcachedConnection to /127.0.0.1:8091 /192.168.100.111:8091}) at net.spy.memcached.MemcachedConnection.handleIO(MemcachedConnection.java:407)
2017-03-20 07:51:55,655 ERROR [stderr] (Memcached IO over {MemcachedConnection to /127.0.0.1:8091 /192.168.100.111:8091}) at net.spy.memcached.MemcachedConnection.handleIO(MemcachedConnection.java:275)
2017-03-20 07:51:55,655 ERROR [stderr] (Memcached IO over {MemcachedConnection to /127.0.0.1:8091 /192.168.100.111:8091}) at net.spy.memcached.MemcachedClient.run(MemcachedClient.java:2030)
2017-03-20 07:51:55,656 ERROR [stderr] (Memcached IO over {MemcachedConnection to /127.0.0.1:8091 /192.168.100.111:8091}) 2017-03-20 07:51:55.656 WARN net.spy.memcached.MemcachedConnection: Closing, and reopening {QA sa=/192.168.100.111:8091, #Rops=0, #Wops=0, #iq=0, topRop=null, topWop=null, toWrite=0, interested=0}, attempt 5.
2017-03-20 07:52:04,549 ERROR [stderr] (Memcached IO over {MemcachedConnection to /127.0.0.1:8091 /192.168.100.111:8091}) 2017-03-20 07:52:04.549 INFO net.spy.memcached.MemcachedConnection: Reconnecting {QA sa=/192.168.100.111:8091, #Rops=0, #Wops=0, #iq=0, topRop=null, topWop=null, toWrite=0, interested=0}
2017-03-20 07:52:05,542 ERROR [stderr] (Memcached IO over {MemcachedConnection to /127.0.0.1:8091 /192.168.100.111:8091}) 2017-03-20 07:52:05.542 INFO net.spy.memcached.MemcachedConnection: Connection state changed for sun.nio.ch.SelectionKeyImpl@58b50eaf
2017-03-20 07:52:05,542 ERROR [stderr] (Memcached IO over {MemcachedConnection to /127.0.0.1:8091 /192.168.100.111:8091}) 2017-03-20 07:52:05.542 INFO net.spy.memcached.MemcachedConnection: Reconnecting due to failure to connect to {QA sa=/192.168.100.111:8091, #Rops=0, #Wops=0, #iq=0, topRop=null, topWop=null, toWrite=0, interested=0}
2017-03-20 07:52:05,542 ERROR [stderr] (Memcached IO over {MemcachedConnection to /127.0.0.1:8091 /192.168.100.111:8091}) java.net.ConnectException: Connection refused: no further information
2017-03-20 07:52:05,542 ERROR [stderr] (Memcached IO over {MemcachedConnection to /127.0.0.1:8091 /192.168.100.111:8091}) at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
2017-03-20 07:52:05,542 ERROR [stderr] (Memcached IO over {MemcachedConnection to /127.0.0.1:8091 /192.168.100.111:8091}) at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717)
2017-03-20 07:52:05,542 ERROR [stderr] (Memcached IO over {MemcachedConnection to /127.0.0.1:8091 /192.168.100.111:8091}) at net.spy.memcached.MemcachedConnection.handleIO(MemcachedConnection.java:407)
2017-03-20 07:52:05,542 ERROR [stderr] (Memcached IO over {MemcachedConnection to /127.0.0.1:8091 /192.168.100.111:8091}) at net.spy.memcached.MemcachedConnection.handleIO(MemcachedConnection.java:275)
2017-03-20 07:52:05,543 ERROR [stderr] (Memcached IO over {MemcachedConnection to /127.0.0.1:8091 /192.168.100.111:8091}) at net.spy.memcached.MemcachedClient.run(MemcachedClient.java:2030)
2017-03-20 07:52:05,543 ERROR [stderr] (Memcached IO over {MemcachedConnection to /127.0.0.1:8091 /192.168.100.111:8091}) 2017-03-20 07:52:05.543 WARN net.spy.memcached.MemcachedConnection: Closing, and reopening {QA sa=/192.168.100.111:8091, #Rops=0, #Wops=0, #iq=0, topRop=null, topWop=null, toWrite=0, interested=0}, attempt 5.
2017-03-20 07:52:20,356 ERROR [stderr] (Memcached IO over {MemcachedConnection to /127.0.0.1:8091 /192.168.100.111:8091}) 2017-03-20 07:52:20.356 INFO net.spy.memcached.MemcachedConnection: Reconnecting {QA sa=/192.168.100.111:8091, #Rops=0, #Wops=0, #iq=0, topRop=null, topWop=null, toWrite=0, interested=0}
2017-03-20 07:52:21,356 ERROR [stderr] (Memcached IO over {MemcachedConnection to /127.0.0.1:8091 /192.168.100.111:8091}) 2017-03-20 07:52:21.356 INFO net.spy.memcached.MemcachedConnection: Connection state changed for sun.nio.ch.SelectionKeyImpl@6fab717a
2017-03-20 07:52:21,356 ERROR [stderr] (Memcached IO over {MemcachedConnection to /127.0.0.1:8091 /192.168.100.111:8091}) 2017-03-20 07:52:21.356 INFO net.spy.memcached.MemcachedConnection: Reconnecting due to failure to connect to {QA sa=/192.168.100.111:8091, #Rops=0, #Wops=0, #iq=0, topRop=null, topWop=null, toWrite=0, interested=0}
2017-03-20 07:52:21,356 ERROR [stderr] (Memcached IO over {MemcachedConnection to /127.0.0.1:8091 /192.168.100.111:8091}) java.net.ConnectException: Connection refused: no further information
2017-03-20 07:52:21,356 ERROR [stderr] (Memcached IO over {MemcachedConnection to /127.0.0.1:8091 /192.168.100.111:8091}) at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
2017-03-20 07:52:21,356 ERROR [stderr] (Memcached IO over {MemcachedConnection to /127.0.0.1:8091 /192.168.100.111:8091}) at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717)
2017-03-20 07:52:21,356 ERROR [stderr] (Memcached IO over {MemcachedConnection to /127.0.0.1:8091 /192.168.100.111:8091}) at net.spy.memcached.MemcachedConnection.handleIO(MemcachedConnection.java:407)
2017-03-20 07:52:21,356 ERROR [stderr] (Memcached IO over {MemcachedConnection to /127.0.0.1:8091 /192.168.100.111:8091}) at net.spy.memcached.MemcachedConnection.handleIO(MemcachedConnection.java:275)
2017-03-20 07:52:21,356 ERROR [stderr] (Memcached IO over {MemcachedConnection to /127.0.0.1:8091 /192.168.100.111:8091}) at net.spy.memcached.MemcachedClient.run(MemcachedClient.java:2030)
我的预期行为是,客户端应该从重新连接主服务器的二次服务器(server2)中读取值。