RabbitMQ - Могу ли я установить ограничения по пользовательскому атрибуту - PullRequest
0 голосов
/ 24 апреля 2019

Я оцениваю использование RabbitMQ в качестве посредника / структуры очереди сообщений для замены встроенной очереди сообщений (используя C #, если это имеет значение).

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

Давайте рассмотрим пример, в котором у меня есть 4 пользовательских потока, и все они просматривают очередь с именем «отчеты». Эти отчеты могут быть запущены для разных «клиентов». Я хочу не допустить, чтобы клиент монополизировал очередь, поэтому предположим, что я не хочу, чтобы какой-либо один клиент использовал более двух потребителей в любой момент времени (если есть другие ожидающие сообщения в очереди). Если нет других сообщений в очереди, ожидающих других клиентов, то я бы хотел, чтобы все потребители имели право.

Учитывая мое ограниченное понимание RabbitMQ, я считаю, что я мог бы либо использовать шаблон темы, чтобы указать клиента, либо использовать собственный заголовок.

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

Я не прошу никого писать код для меня, я просто хочу знать, может ли кто-нибудь сказать мне «нет, это не сработает» заранее, прежде чем я потрачу кучу времени на ускорение.

Если мой вопрос не имеет смысла, пожалуйста, дайте мне знать, и я обновлю его дополнительной информацией. Заранее спасибо.

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