【发布时间】:2019-07-08 04:10:04
【问题描述】:
在单个接收端点上使用相同消息类型的不同消费者是一种有效的解决方案,还是应该为每个消费者使用一个接收端点?
cfg.ReceiveEndpoint(host, "MyQueue", e =>
{
logger.LogInformation("Consuming enabled.");
//register consumers with middleware components
e.Consumer<MyConsumer>(context);
e.Consumer<MyOtherConsumer>(context);
})
public class MyConsumer : IConsumer<MyMessage> {}
public class MyOtherConsumer : IConsumer<MyMessage> {}
上述解决方案有效,每个消费者都会收到消息。即使一个失败(例外)。
我为什么要问这个?我们当前的解决方案是每个消息类型都有一个消费者。消费者将收到的消息传递给内部自定义可扩展管道进行处理。如果上述解决方案可行,我们可以放弃或拥有自定义管道,而改用 MassTransit。
【问题讨论】:
标签: c# rabbitmq masstransit