2011-06-15 98 views
2

我正在查找一個java示例,其中顯示瞭如何避免其中一個節點出現故障時出現Membase異常。Java中的Membase節點錯誤處理

我有一個「默認」存儲桶的兩個節點的小集羣。它被複制到兩臺服務器上。我爲壓力加載編寫了一個小測試應用程序。我使用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 [email protected] 
2011-06-15 17:32:33.413 INFO net.spy.memcached.MemcachedConnection: Connection state changed for [email protected] 
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, [email protected]75d4, 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, [email protected]75d4, 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: [email protected] 
2011-06-15 18:20:21.899 WARN net.spy.memcached.protocol.binary.BinaryMemcachedNodeImpl: Discarding partially completed op: [email protected] 
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往下走,但客戶沒有了解,而墜毀。

任何想法如何正確處理它?

回答

0

所以,我們沒有找到問題的答案,我們不再使用這個軟件。現在我們使用Erlang,絕對說明了這種內存數據存儲的需求。

0

- 如果故障切換服務器,異常會消失嗎? - 你指的是哪個服務器的URI?如果你將它指向「其他」和/或兩者,它會有所作爲嗎?

佩裏

0

我相信這是因爲我上運行我的本地單個memcached服務器和運行測試用例來緩存和檢索數據時有此錯誤消息的memcached集羣的不是。以下環境正在使用mac snow leapord + spymemcached 2.7 + memcached 1.4.6

我在守護進程模式下運行它,並在重新啓動本地memcached服務器後得到修復。

對不起,我不能確切地告訴原因,但這樣做解決了上述問題。

+0

嗨Bobby,我的問題與memcache無關,它是關於membase的。但是謝謝你分享你的經驗。 – Worker 2011-07-29 12:52:09