MassTransit:是否可以拥有一个仅限发布的应用程序?

时间:2014-05-01 16:44:35

标签: c# masstransit

MassTransit似乎要求每个与总线交互的应用都有一个输入队列,即使它是一个纯粹的制作人:

消费

ServiceBusFactory.New(_=>
{
    _.UseRabbitMq();
    _.ReceiveFrom("rabbitmq://localhost/consumer");
    _.Subscribe(...);
});

生产者

var bus = ServiceBusFactory.New(_=>
{
    _.UseRabbitMq();
    _.ReceiveFrom("rabbitmq://localhost/producer");
});

这是多余的,可能会导致配置问题,因为我们有一个复杂的应用程序,并且会有竞争的消费者。

是否可以为纯生产者配置没有接收队列的总线?,即:

var bus = ServiceBusFactory.New(_=>
{
    _.UseRabbitMq();
});

bus.Publish(...);

修改

好吧看来我可能稍微误解了文档并强调使用多个队列,这似乎工作正常:

消费

ServiceBusFactory.New(_=>
{
    _.UseRabbitMq();
    _.ReceiveFrom("rabbitmq://localhost/company");
    _.Subscribe(...);
});

生产者

var bus = ServiceBusFactory.New(_=>
{
    _.UseRabbitMq();
    _.ReceiveFrom("rabbitmq://localhost/company");
});

bus.Publish(...);

由于发布没有订阅任何消息,它不会吃掉它们或类似的东西。我想文档的问题是指非竞争情景。

1 个答案:

答案 0 :(得分:0)

来自Mass Selnsit的作者之一Dru Sellers的更多见解:

https://groups.google.com/forum/#!topic/masstransit-discuss/_bnDRDGWLcc