Я создал программу быстрого запуска MassTransit для взаимодействия с моим локальным хостом RabbitMQ:
namespace ConsoleApp1
{
public static class Program
{
public class YourMessage
{
public string Text { get; set; }
}
public static async Task Main(params string[] args)
{
var bus = Bus.Factory.CreateUsingRabbitMq(sbc =>
{
var host = sbc.Host(new Uri("rabbitmq://localhost"), h =>
{
h.Username("guest");
h.Password("guest");
});
sbc.ReceiveEndpoint(host, "test_queue", ep =>
{
ep.Handler<YourMessage>(async context => await Console.Out.WriteLineAsync($"Received: {context.Message.Text}"));
});
});
await bus.StartAsync();
await bus.Publish(new YourMessage{Text = "Hi"});
Console.WriteLine("Press any key to exit");
Console.ReadKey();
await bus.StopAsync();
}
}
}
Все выглядело нормально, пока я фактически не проверил базовое управление RabbitMQ и обнаружил, что только для этой очень простой программы MassTransit создал 3 обмена и 2 очереди.
Обмены, все разветвления:
ConsoleApp1:Program-YourMessage
: прочный
VP0003748_dotnet_bus_6n9oyyfzxhyx9ybobdmpj8qeyt
: автоматическое удаление и долговечность?
test_queue
: прочный
Очередь:
VP0003748_dotnet_bus_6n9oyyfzxhyx9ybobdmpj8qeyt
: x-expire 60000
test_queue
: прочный
Я хотел бы знать, почему все это необходимо или это конфигурация по умолчанию? В частности, я не совсем уверен, что нужно создавать столько «многих».