Задать вопрос
arturich
@arturich

Можно ли приоритезировать на какой консумер (или группу) уйдет сообщение из RabbitMQ?

Если я изначально не прав в понимании использования очередей сообщений, поправьте пожалуйста.


Хочется понимать проблему, которую я описал в заголовке.
  • Вопрос задан
  • 3824 просмотра
Подписаться 3 Средний Комментировать
Решения вопроса 1
akazakou
@akazakou
Есть несколько вариантов решения задачи:
1. Создается несколько точек обмена (exchanges) по разным типам сообщения и подписывать очереди для каждого consumer на эти точки обмена.
2. Создается одна точка обмена и все очереди подписываются на эту точку обмена, с указанием routing_key. Очереди подписываются на определенные routing_key (их может быть несколько)

Второй вариант более предпочтителен на мой взгляд.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
subvillion
@subvillion
Нет нельзя, такой концепции в RabbitMQ нет.
Реализуют по разному.
Оптимальная реализация, на мой взгляд, это 2 очереди, low и hi + коньсюмер который сначала забирает таск из hi, и только если там пусто из low.
Ответ написан
@tarasbogach

http://www.rabbitmq.com/amqp-0-9-1-quickref.html
basic.qos(long prefetch-size, short prefetch-count, bit global) ➔ qos-ok
Specify quality of service.

Так можно изменить вероятность для воркера.

Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы