java - Java中的Membase节点故障处理

标签 java memcached membase

我正在寻找一个 java 示例,该示例说明如何在 Membase 的一个节点出现故障时避免异常。

我有一个由两个节点和一个“默认”存储桶组成的小型集群。它被复制到两台服务器上。我写了一个小的 java 测试应用程序来加载压力。我使用 spymemcache 2.7。当我运行它时 - 两台服务器都很忙。当我关闭一个 membase 实例时,我的 java 应用程序崩溃了。

这是异常日志:

2011-06-15 17:32:33.405 INFO net.spy.memcached.MemcachedConnection:  Added {QA sa=/192.168.1.9:11211, #Rops=0, #Wops=0, #iq=0, topRop=null, topWop=null, toWrite=0, interested=0} to connect queue
2011-06-15 17:32:33.407 INFO net.spy.memcached.MemcachedConnection:  Added {QA sa=/192.168.1.10:11211, #Rops=0, #Wops=0, #iq=0, topRop=null, topWop=null, toWrite=0, interested=0} to connect queue
2011-06-15 17:32:33.412 INFO net.spy.memcached.MemcachedConnection:  Connection state changed for sun.nio.ch.SelectionKeyImpl@63238bd2
2011-06-15 17:32:33.413 INFO net.spy.memcached.MemcachedConnection:  Connection state changed for sun.nio.ch.SelectionKeyImpl@37bd2664
2011-06-15 18:20:21.896 INFO net.spy.memcached.MemcachedConnection:  Reconnecting due to exception on {QA sa=/192.168.1.9:11211, #Rops=2, #Wops=0, #iq=0, topRop=net.spy.memcached.protocol.binary.StoreOperationImpl@5f4275d4, topWop=null, toWrite=0, interested=1}
java.io.IOException: Connection reset by peer
    at sun.nio.ch.FileDispatcher.read0(Native Method)
    at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:21)
    at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:237)
    at sun.nio.ch.IOUtil.read(IOUtil.java:210)
    at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:236)
    at net.spy.memcached.MemcachedConnection.handleReads(MemcachedConnection.java:487)
    at net.spy.memcached.MemcachedConnection.handleIO(MemcachedConnection.java:427)
    at net.spy.memcached.MemcachedConnection.handleIO(MemcachedConnection.java:280)
    at net.spy.memcached.MemcachedClient.run(MemcachedClient.java:2063)
2011-06-15 18:20:21.897 WARN net.spy.memcached.MemcachedConnection:  Closing, and reopening {QA sa=/192.168.1.9:11211, #Rops=2, #Wops=0, #iq=0, topRop=net.spy.memcached.protocol.binary.StoreOperationImpl@5f4275d4, topWop=null, toWrite=0, interested=1}, attempt 0.
2011-06-15 18:20:21.898 WARN net.spy.memcached.protocol.binary.BinaryMemcachedNodeImpl:  Discarding partially completed op: net.spy.memcached.protocol.binary.StoreOperationImpl@5f4275d4
2011-06-15 18:20:21.899 WARN net.spy.memcached.protocol.binary.BinaryMemcachedNodeImpl:  Discarding partially completed op: net.spy.memcached.protocol.binary.GetOperationImpl@802b249
Exception in thread "main" java.lang.RuntimeException: Exception waiting for value
    at net.spy.memcached.MemcachedClient.get(MemcachedClient.java:1146)
    at net.spy.memcached.MemcachedClient.get(MemcachedClient.java:1163)

我让节点 192.168.1.9 关闭,但客户端不理解并崩溃了。

关于如何正确处理它有什么想法吗?

最佳答案

-如果您对服务器进行故障转移,异常是否会消失? - 您将客户端指向哪个服务器的 URI?如果您将它指向“另一个”和/或两者,会有什么不同吗?

佩里

关于java - Java中的Membase节点故障处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6360006/

相关文章:

mysql - NodeJS、Redis 和 MySQL

couchdb - Membase 有人可以解释一下他们的技术背后的想法吗

mongodb - Cassandra、Membase、Hadoop、MongoDB、RDBMS等如何选择?

java - 使用命令提示符运行时找不到或加载主类

java - Android Activity销毁时如何销毁Native进程

python - 在 Django 中处理 memcache 缓存的模式

java - 如何在 java 中刷新 memcached/spymemcached

java - Spring Oauth2修改无效 token 异常的响应

java - 比较antlr生成的 token