MassTransit + RabbitMQ как настроить обменники?

Пытаюсь публиковать все сообщения в один обменник, которые будут раскидываться дальше в очереди по routing key, но почему-то создаются обменник с названием очереди.

Пытаюсь сделать как-то так:

cfg.Message<FirstMessagePart1>(p => p.SetEntityName("first_part1"));
cfg.Publish<FirstMessagePart1>(p =>
{
    p.Durable = true;
    p.AutoDelete = false;
    p.BindQueue("first_exchange", "first_part1_queue");
});

cfg.ReceiveEndpoint("first_part1_queue", x =>
{
    x.ConfigureConsumeTopology = false;
    x.Bind("first_exchange", b =>
    {
        b.RoutingKey = "1";
        b.AutoDelete = false;
        b.Durable = true;
    });
    x.Consumer<FirstMessagePart1Consumer>(hostContext);
});

Получается то, что я и хочу, НО(!) создаются еще обменники с названием очереди: обменник

Которые в свою очередь уже отправляют это всё в очередь: обменник 2

Почему MassTransit создает эти обменники, а не делает напрямую это всё? Как можно (но нужно ли?) отключить это поведение?


Ответы (1 шт):

Автор решения: Fedya Sharapov

Это невозможно на данный момент!

Создатели MassTransit пишут:

"MassTransit will always declare exchanges, queues, and bindings. There is no way to disable this behavior."

Ссылка на обсуждение.

→ Ссылка