RabbitMQ / ActiveMQ или Redis для более чем 250000 мсг / с - PullRequest
23 голосов
/ 22 сентября 2011

Несмотря на то, что Redis и программное обеспечение для организации очередей сообщений обычно используются для различных целей, я хотел бы спросить плюсы и минусы использования Redis для следующего варианта использования:

  • группа сборщиков событий записывает входящие сообщения как ключ / значение. потребители получают и удаляют обработанные ключи
  • нагрузка, начиная со 100 кбит / с и превышая 250 кГц за короткий промежуток времени (например, месяцы), цель - достичь миллиона мсг / с
  • постоянство строго не требуется. можно потерять сообщения, не занесенные в журнал, во время сбоя
  • производительность очень важна (таким образом, количество систем, необходимых для обработки нагрузки)
  • сообщения не должны обрабатываться в порядке их поступления

Знаете ли вы такие случаи использования, когда redis выбирается по сравнению с традиционным программным обеспечением для организации очередей сообщений? или вы бы рассмотрели что-то еще?

примечание: я тоже это видел, но не помогло: Новичок в приложении реального времени - Node.JS + Redis или RabbitMQ -> клиент / сервер как?

спасибо

1 Ответ

19 голосов
/ 30 сентября 2011

Учитывая ваши требования, я бы попробовал Redis.Он будет работать лучше, чем другие решения, и даст вам более точный контроль над характеристиками устойчивости.В зависимости от языка, который вы используете, вы можете использовать сегментированный кластер Redis (вам нужны привязки Redis, которые поддерживают согласованное хеширование - не все это делают).Это позволит вам масштабировать до указанного вами объема.Я видел 10k / sec на своем ноутбуке в некоторых базовых тестах.

Возможно, вы захотите использовать операции со списком в Redis (LPUSH для записи, BRPOP для чтения), если вы хотите использовать семантику очереди.

У меня есть бывший клиент, который развернул Redis в производстве в качестве очереди сообщений прошлой весной, и он был очень доволен этим.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...