MassTransit:如何向特定消费者发送消息?

时间:2019-03-13 03:51:30

标签: message-queue masstransit

对不起,如果我的问题很愚蠢,我是MassTransit的新手。

我的系统由一台服务器和多个客户端设备组成。 我想将消息从服​​务器发送到特定客户端或一组客户端。 据我了解,IBusControl.Publish将消息发送给所有订阅者,IBusControl.Send发送给唯一的订阅者。

如何使用MassTransit实现此目的? 我的交通工具是RabbitMQ / Azure服务总线。

谢谢!

1 个答案:

答案 0 :(得分:1)

MassTransit实现标准的消息传递模式,该模式不是MassTransit特定的。点对点,发布-订阅,无效的消息通道,死信通道等:

enter image description here

您确实可以选择使用Send向一个使用者发送消息,以及使用Publish向该消息类型的所有订户广播消息。

通过向消费者添加代码,可以轻松完成其他所有事情:

await bus.Publish(new MyMessage { ReceiverGroup = "group1", ... });

public async Task Consume(IContext<MyMessage> context)
{
    if (context.Message.ReceiverGroup != myGroup) return;

    ...
}