Обработка ошибок узла мембраны в Java - PullRequest
2 голосов
/ 15 июня 2011

Я ищу пример java, который показывает, как избежать исключений с Membase, когда один из его узлов выходит из строя.

У меня есть небольшой кластер из двух узлов с одной корзиной по умолчанию.Он реплицируется на оба сервера.Я написал небольшое тестовое приложение Java для стрессовой нагрузки.Я использую spymemcache 2.7.Когда я запускаю его - оба сервера становятся занятыми.Когда я закрываю один экземпляр мембраны, мое 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, но клиент не понял этого и упал.

Есть идеи, как правильно с этим справиться?

Ответы [ 3 ]

0 голосов
/ 28 июля 2011

Я полагаю, что это не из-за кластера memcached, поскольку у меня было это сообщение об ошибке при запуске одного сервера memcached на моем локальном компьютере и выполнении тестового примера для кэширования и извлечения данных. Следующее окружение использовалось mac snow leapord + spymemcached 2.7 + memcached 1.4.6

Я запускал его в режиме демона, и он был исправлен после перезапуска локального сервера memcached.

Я сожалею, что не могу точно сказать причину этого, но выполнение вышеуказанного исправило проблему.

0 голосов
/ 17 мая 2012

Итак, мы не нашли ответа на вопрос и больше не используем это программное обеспечение.Теперь мы используем Erlang, что абсолютно подчеркивает необходимость такого рода хранения данных в памяти.

0 голосов
/ 16 июня 2011

- Исключение исчезнет, ​​если вы перестанете работать на сервере? На какой URI сервера вы указываете клиенту? Имеет ли значение, если вы указываете на «другой» и / или оба?

Perry

...