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(...);
由于发布没有订阅任何消息,它不会吃掉它们或类似的东西。我想文档的问题是指非竞争情景。
答案 0 :(得分:0)
来自Mass Selnsit的作者之一Dru Sellers的更多见解:
https://groups.google.com/forum/#!topic/masstransit-discuss/_bnDRDGWLcc