Получить полное имя очереди от диспетчера RabbitMq - PullRequest
1 голос
/ 14 февраля 2020

Я отправляю сообщение в очередь:

using (var dispatcher = new Dispatcher<Scheduler.Queue.Contract.JobMessage>(new QueueConnectionInfo(_connectionSettings)))
{
    dispatcher.Dispatch(jobMessage.ToContract(), routingKey);
}

В случае, когда я создаю потребителя, я могу легко получить имя очереди: consumer.QueueName

Как я могу получить полное имя очереди (например, «Queue. {someComponent}. {someRoute}»), в каком сообщении было отправлено?

1 Ответ

1 голос
/ 16 февраля 2020

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

Однако для устранения неполадок RabbitMQ предоставляет вам плагин (который не рекомендуется использовать для из-за большого объема ресурсов), этот плагин является плагином Firehose , и он также поставляется с пользовательским интерфейсом, который дает нам полный след от publi sh ко всем очередям, по которым сообщение направляется ему.

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