2017-01-17 18 views
0

Мой сценарий:RabbitMQ: Лопата для нескольких серверов из одной очереди на основе сообщений маршрутизации ключа

Мы используем RabbitMQ для трансляции сообщений о 300 других компьютеров в сети. Мы используем RabbitMQ на Windows Server, клиент C# .Net (EasyNetQ)

основного раствора будет назначать routingkey для каждого целевого компьютера, определить обмен и связать каждый routingKey в одной очереди и определить лопату каждому очередь на целевой сервер. В этом состоянии у нас есть 1 обмен и 300 очереди и 300 лопат.

Заявление об ошибке: Техническое обслуживание и управление этим количеством лопаты и очереди трудны и вынуждают больше нагрузки на кролик.

Вопрос: Я думаю, что есть простой способ сделать это: как определить один обмен, одну очередь и лопасти на основе маршрута (300). какое решение вы рекомендуете?

Заранее спасибо.

ответ

1

Вы второй вариант выглядите лучше для меня ..
Создайте обмен темы/разветвления на своем сервере и позвольте всем лопатам потреблять с этого обмена для каждого клиента.
Чем вы можете публиковать сообщение на этом обмене, используя стратегию вещания, или вы можете использовать подстановочный знак для маршрутизации.

+0

Здравствуйте, благодарю вас за ваш ответ, я проверил ваше решение (и наложил лопату на обмен). но таким образом RabbitMQ определяет одну очередь для каждого определения лопаты. я предпочитаю, чтобы я определял очередь вместо rabbitmq (значимое именование). – Javad

+0

Да, они создадут эксклюзивные очереди, и если вы удалите лопаты, то эти очереди также будут удалены автоматически. Но если вы хотите создавать очереди самостоятельно, я не могу думать о каком-либо другом решении. –