2016-04-26 6 views
0

Могу ли я использовать twemproxy в качестве балансировщика нагрузки для пула экземпляров redis, в зависимости от размера очереди redis (количество ключей на экземпляр)? Может ли twemproxy отключиться от одного из экземпляров redis, если он достигает предварительно сконфигурированного максимального количества ключей в своей базе данных?Могу ли я использовать twemproxy для балансировки нагрузки по размеру очереди redis?

Если да, то как я могу это сделать (я очень новичок в redis и прочее, поэтому я просто не могу получить это из документации)?

Заранее спасибо.

ответ

1

Нет, невозможно выполнить балансировку на точное количество ключей или размер очереди на экземпляр. Облицовка основана на расчетах на основе имени ключа. (см. настройки hash, hash_tag и distribution) Обычно вам нужно получить довольно ровное распространение, но с некоторой неудачей некоторые осколки могут получить гораздо больше ключей, чем другие.

+0

Спасибо, приятель, я получил вашу мысль. В моем случае есть приложение java, которое обслуживает каждый экземпляр redis, вытаскивая данные в очередь, и если он падает, очередь будет переполнена довольно быстро, а redis упадет из-за нехватки оперативной памяти, потеряв мои данные ... Итак, это довольно для меня важно, чтобы балансир работал точно так же, как я описал ((Есть ли у вас какие-либо предложения, как я могу заставить это работать? .. –

+0

Я не уверен, что получаю ограничение количества ключей в очереди поможет вам. Если вы правильно поняли, что используете redis для хранения каких-либо заданий, которые будут обрабатываться вашим Java-приложением, предположим, что у вас есть возможность ограничить размер очереди на один экземпляр. Если у вас есть два экземпляра за прокси, и один достигнет определенного предела, прокси начнет переадресацию в другой экземпляр, а затем этот скоро достигнет определенного предела. Как это лучше/отличается от распределения ключей более или менее равномерно по обоим экземплярам? – udondan

+0

Ключ к потере данных является избыточность (реплик) и выполнение redis с сохранением (запись данных на диск). Если ваша проблема заключается в том, что у ваших хостов заканчивается RAM, [виртуальная память] (http://redis.io/topics/virtual-memory) может быть вам интересна. (хотя устарели) – udondan

 Смежные вопросы

  • Нет связанных вопросов^_^