Я пытаюсь настроить систему обмена сообщениями между несколькими приложениями. У меня запущен экземпляр RabbitMQ, и это нормально. Я могу подключить несколько подписчиков / издателей к экземпляру RabbitMQ, и с ними все в порядке. Затем я могу опубликовать сообщение от одного издателя, но только один подписчик получает сообщение.
Я считаю, что это связано с тем, как я устанавливаю очереди. Я посмотрел учебник по Кролику, https://www.rabbitmq.com/tutorials/tutorial-three-dotnet.html,, но я не знаю, как это переводится в библиотеку Masstransit.
Из-за моей жизни мне трудно понять, что я делаю неправильно.
NuGets:
- MassTransit.Extensions.DependencyInjection 5.3.2
- MassTransit.RabbitMQ 5.3.2
Может кто-нибудь помочь?
// Register MassTransit
services.AddMassTransit(mtCfg =>
{
mtCfg.AddConsumer<DomainMessageConsumer>();
mtCfg.AddBus(provider => Bus.Factory.CreateUsingRabbitMq(rbCfg =>
{
var host = rbCfg.Host(settings.RabbitMq.Host, settings.RabbitMq.VirtualHost, h =>
{
h.Username(settings.RabbitMq.Username);
h.Password(settings.RabbitMq.Password);
});
rbCfg.ReceiveEndpoint(host, settings.RabbitMq.ConnectionName, ep =>
{
ep.PrefetchCount = 16;
ep.UseMessageRetry(x => x.Interval(2, 100));
ep.ConfigureConsumer<DomainMessageConsumer>(provider);
});
}));
});