У меня есть служба .NET Core, которая публикует события в Rebus с RMQ Transport со следующей конфигурацией:
services.AddRebus(configure => configure
.Logging(x => x.Serilog())
.Transport(x => x.UseRabbitMq(rabbitMqConnection, "ServiceA"))
.Routing(x => x.TypeBased()));
Когда я запускаю ее, она, кажется, публикует событие в обмен RebusTopics.Таким образом, служба B имеет следующую конфигурацию:
services.AutoRegisterHandlersFromAssemblyOf<MyHandler1>();
services.AddRebus(configure => configure
.Logging(x => x.Serilog() )
.Transport(x => x.UseRabbitMq(rabbitMqConnection, "ServiceB"))
.Routing(x => x.TypeBased()));
и обработчик:
public class MyHandler1: IHandleMessages<ServiceAEvent>
{
public CreateMinisiteWhenPageIsCreated(){}
public Task Handle(PageCreated message)
{
//do stuff..
return Task.CompletedTask;
}
Кажется, что существует привязка к обмену RebusDirect к новой очереди ServiceB, но когда яопубликуйте событие из ServiceA, обработчик никогда не сработает в ServiceB ... нет привязки в обмене RebusTopics для этого типа сообщения.
Я схожу с ума от удивления, почему, по синтаксису он очень похож на NServiceBus, оченьне понимает, почему он не работает.