Достижение шаблонов обмена сообщениями JMS/AMQP с помощью RedisJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Достижение шаблонов обмена сообщениями JMS/AMQP с помощью Redis

Сообщение Anonymous »

Этот вопрос возникает, когда я наткнулся на некоторые упоминания (например, это) об использовании программного обеспечения для обмена сообщениями, такого как ZeroMQ, вместе Redis, но я продолжаю слышать о том, что Redis сам использует систему обмена сообщениями. Итак, если Redis используется вместе с другими системами обмена сообщениями, означает ли это, что Redis имеет некоторые серьезные недостатки при использовании в качестве системы обмена сообщениями сам по себе?

Хотя использование Redis для кэширования и публикации/подписки мне ясно, неясно, можно ли использовать Redis вместо полноценной системы обмена сообщениями, такой как JMS, AMQP или ZeroMQ.

Оставляя в стороне аспект соответствия стандартам и концентрируясь только на функциональности/возможностях, обеспечивает ли Redis поддержку всех шаблонов/моделей обмена сообщениями, необходимых для системы обмена сообщениями?


Шаблоны обмена сообщениями, о которых я говорю:

  • RPC/Request-reply (пример
    с использованием ActiveMQ/JMS и другой с использованием RabbitMQ/AMQP)
  • Конвейерные/рабочие очереди (однократное и не более одного использования каждого из них) сообщение)
  • Broadcast (все подписаны на канал)
  • Multicast (фильтрация сообщений на сервере на основе селекторов потребителей)
  • Любой другой шаблон обмена сообщениями?
Если да, то Redis, похоже, решает два (возможно, больше) аспекта одновременно: кэширование и обмен сообщениями.

Я смотрю на это в контексте веб-приложения, поддерживаемого сервером Java/Java EE.
И я смотрю на это не с точки зрения проверки концепции, а с точки зрения крупномасштабной разработки программного обеспечения.

Редактировать 1:

пользователь:791406 задал правильный вопрос:


"Кого волнует, поддерживает ли Redis эти шаблоны; будет ли Redis соответствовать вашим требованиям SLA
и QoS?"


Я подумал, что лучше дать эту информацию как часть вопроса, а не в разделе комментариев.

Мои текущие потребности связаны не столько с SLA и QOS, сколько с выбором инструмента для моей работы (обмен сообщениями), который я смогу использовать, даже когда мои требования (разумно) вырастут в будущем.
Сначала я начинаю с упрощенных требований, и мы все знаем, что требования имеют тенденцию расти.
И НЕТ, я не ищу один инструмент, который делает все это.
Я просто хочу знать, выполняет ли Redis обычные требования, ожидаемые от системы обмена сообщениями, как это делает ActiveMQ/RabbitMQ. Конечно, если мои потребности в SLA/QOS экстремальны/эксцентричны, мне понадобится специальный инструмент для их удовлетворения. Например: в некоторых случаях ZeroMQ может быть выбран вместо RabbitMQ из-за особых требований SLA. Я не говорю о таких особых требованиях. Я ориентируюсь на средние корпоративные требования.

Я боялся (основываясь на моем небольшом понимании), что, хотя Redis можно использовать в качестве основного инструмента для моих сегодняшних потребностей в обмене сообщениями, он может оказаться неподходящим инструментом для реальной работы по обмену сообщениями в будущем. У меня есть опыт работы с системами обмена сообщениями, такими как ActiveMQ/RabbitMQ, и я знаю, что их можно использовать для простых и (достаточно) сложных задач обмена сообщениями.

Edit2:
  • На веб-сайте Redis упоминается, что «Redis часто используется в качестве сервера обмена сообщениями», но неясно, как добиться таких шаблонов обмена сообщениями.
  • Сальваторе Санфилиппо упоминает, что пользователи Redis склонны использовать его в качестве базы данных, как шину обмена сообщениями или в качестве кэша. Неясно, в какой степени он может служить «шиной сообщений».
  • Когда я пытался выяснить, какие требования к обмену сообщениями в JMS, которые Redis не поддерживает, я наткнулся на то, что Redis поддерживает, а JMS нет: Подписки с сопоставлением шаблонов, т. е. клиенты могут подписываться на шаблоны в стиле glob, чтобы получать все сообщения, отправленные на имена каналов, соответствующие заданному шаблону.
Вывод:

Я решил использовать JMS для обмена сообщениями и использовать Redis для кэширования.
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»