Я создаю настройку рабочей очереди, где разные рабочие/потребители имеют разные возможности. Под этим я подразумеваю, что не все рабочие элементы могут управляться всеми работниками.RabbitMQ для рабочей очереди с использованием пользователей с различными возможностями
Скажем, у меня есть следующие рабочие:
Worker A
Capability 1
Capability 2
Capability 3
Worker B
Capability 1
Worker C
Capability 1
Capability 3
- Если работа требует
Capability 1
, он может быть запущен любым работником. - Если требуется работа
Capability 1
иCapability 2
, ее может обслуживать толькоWorker A
. - Если работа требует
Capability 1
иCapability 3
он может быть запущенWorker A
илиWorker C
- и так далее ...
Вопрос
ли RabbitMQ способен/подходит для диспетчерских рабочих мест для таких настроить?
спасибо. Одна вещь, однако, работа может иметь более одного требования. Означает ли это, что я должен создавать очереди для каждой комбинации требований? Это не вариант для меня, я боюсь, потому что количество индивидуальных условий составляет> 20, поэтому все комбинации будут очень большим количеством очередей ... – anorm
В этом случае потребуется более сложный обмен. Что-то вроде Тема/Заголовки Ex хорошо подходит. С помощью темы EX вам нужно будет создать объявление с иерархией ключей маршрутизации и посмотреть, можете ли вы фильтровать сообщения в соответствии с вашими потребностями. Если нет реальной иерархии сообщений, используйте обмен заголовками, где вы можете установить несколько заголовков и сказать кролику, чтобы он соответствовал любому/в зависимости от того, что вам нужно. В качестве побочного примечания, если вы не можете добиться фильтрации на первом уровне, вам, возможно, придется создать иерархию обменов и разделить их где-то вниз по течению. Подсказка: Ex -> Ex привязка разрешена. –