【问题标题】:MassTransit: how to send a message to specific consumers?MassTransit:如何向特定消费者发送消息?
【发布时间】:2019-03-13 03:51:30
【问题描述】:

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

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

如何使用 MassTransit 实现这一目标? 我的传输是 RabbitMQ / Azure 服务总线。

谢谢!

【问题讨论】:

    标签: message-queue masstransit


    【解决方案1】:

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-09
      • 2013-08-01
      相关资源
      最近更新 更多