Я создал базовое демонстрационное приложение pub / sub, которое работает на локальном хосте с MassTransit.
Я хочу опубликовать сообщение, и его должны получить все подписчики.
На данный момент в своей среде я запускаю одно приложение для издателя и два приложения для подписчиков. Но когда я публикую сообщение, подписчики получают его по очереди.
Мой паб-код / дополнительный код:
Опубликовать:
var bus = Bus.Factory.CreateUsingRabbitMq(config =>
{
config.Host(new Uri("rabbitmq://localhost/"), h => { });
config.ExchangeType = ExchangeType.Fanout;
});
var busHandle = bus.Start();
bus.Publish<SomethingHappened>(message);
Подписчики используют этот код:
var bus = Bus.Factory.CreateUsingRabbitMq(config =>
{
var host = config.Host(new Uri("rabbitmq://localhost/"), h => { });
config.ReceiveEndpoint(host, "MassTransitExample_Queue", e => e.Consumer<SomethingHappenedConsumer>());
});
var busHandle = bus.Start();
Console.ReadKey();
busHandle.Stop();