是的,对于相同的消息类型,您可以在同一端点上注册多个使用者,并且MassTransit将处理将消息分派给这些使用者。
您还可以自定义端点管道以及每个使用者的管道,以便可以将不同的过滤器应用于不同的使用者。
ec.Consumer<MyConsumer>(context, c => c.UseRetry(r => r.Interval(2,1000))); ec.Consumer<MyOtherConsumer>(context, c => c.UseRetry(r => None()));
这是MT被重写为围绕管道构建的核心原因之一(这是几年前,但仍然如此)以及GreenPipes是如何创建的。
作为旁注,您可以将每个使用者放在一个单独的端点上,并发布消息,这将为每个使用者提供自己的副本 - 并在需要时自己执行上下文(包括重试和代理错误处理)。