Масстранзит издателя / потребителя в одном приложении - PullRequest
0 голосов
/ 06 ноября 2018

Мы тестируем MassTransit, и нам было интересно, может ли один и тот же сервис иметь двух или более потребителей, каждый из которых публикует / использует сообщения между другими.

           var bus = Bus.Factory.CreateUsingRabbitMq(x =>
        {
            var host = x.Host(new Uri("rabbitmq://localhost/"), h => { });

            x.ReceiveEndpoint(host, "CropMetricsIngestExternal_RequestDevicesPerUser", e =>
                e.Consumer<RequestDevicePerUserConsumer>());

            x.ReceiveEndpoint(host, "CropMetricsIngestExternal_RequestDataPerDevice", e =>
                e.Consumer<RequestDataPerDeviceConsumer>());
        });

В этом случае у этого потребителя у нас есть RequestDevicePerUserConsumer, который получает все устройства и затем публикует сообщение для CropMetricsIngestExternal_RequestDataPerDevice, которое обрабатывает потребитель RequestDataPerDeviceConsumer.

Нам интересно, подходит ли это для сценария производства. Поскольку MassTransit создает экземпляр для каждого полученного сообщения, похоже, было бы то же самое, если бы он был в отдельных проектах или просто в отдельных классах.

...