通过MassTransit发送到多个RabbitMQ主机

时间:2020-04-21 15:35:11

标签: c# .net rabbitmq masstransit

我正在使用RabbitMQ在.NET应用程序中使用MassTransit。它可以正常工作,我已经在ioc中配置并注册了MassTransit总线控件,现在我可以将消息发送到RabbitMQ实例并使用它们了。

现在我需要有可能将消息发送到RabbitMQ的另一个实例。我该怎么做呢?我不需要使用来自其他RabbitMQ的消息,只需要向那里发送一些东西。

我试图注入ISendEndpointProvider并将GetSendEndpoint与其他RabbitMQ实例的URI一起使用,但这似乎不起作用。我没有任何错误,但是当我尝试通过其他RabbitMQ发送消息时却没有任何消息。 MassTransit文档没有说明有关连接到多个主机的信息。

感谢所有建议。

1 个答案:

答案 0 :(得分:0)

如果需要在同一过程中设置两个总线实例,则需要分别管理它们,并且使用不同的容器,或者不要将容器与第二个实例一起使用。我建议为委托给另一个总线实例的基于容器的服务创建类。您将不得不单独管理它,如果只发送/发布,则不需要任何使用者设置。

MassTransit不需要容器,因此您可以在应用程序生命周期中创建/启动和处置/停止第二个实例。