【问题标题】:Receive messages using masstransit from Azure Service buss linked with RabbitMq via shovel使用masstransit 从通过shovel 与RabbitMq 链接的Azure 服务总线接收消息
【发布时间】:2021-10-04 10:04:49
【问题描述】:

我通过 shovel 链接了 rmq 实例和 azure 服务总线,并使用 masstransit 发送/接收消息。我可以成功地向 rmq 发送消息并在服务总线中看到它,但无法使用公共交通接收。我认为这是因为有不同的消息签名。也许有人有类似的经历。 谢谢

【问题讨论】:

  • 请澄清您的具体问题或提供其他详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。

标签: c# azureservicebus masstransit rabbitmq-shovel


【解决方案1】:

MassTransit 完全支持 RabbitMQ,包括许多高级特性和功能。

MassTransit 可以连接到 RabbitMQ 虚拟主机集群并将它们视为单个虚拟主机。

MassTransit 包括多个接收端点级别的配置选项,用于控制接收端点的行为。

要配置 MassTransit,必须指定主机和虚拟主机,并且必须配置 UseSsl

将 Azure 服务总线与 MassTransit 结合使用时,您可以在常规端点之外添加订阅端点

配置订阅端点时,您应该能够指定规则和/或过滤器作为订阅的一部分。

您需要在接收端点中为该类型添加消息使用者。上面的代码没有消费者,所以没有类型绑定。

class YourConsumer :
    IConsumer<RegisterNewCustomerCommand>
{}

cfg.ReceiveEndpoint("your_queue", x => 
{
    x.Consumer<YourConsumer>();
});

然后您将拥有一个接受该消息类型的消费者,这将导致 MassTransit 将主题绑定到队列。

请参考Using MassTransit with RabbitMQ,Send Messages,MassTransit + RabbitMQ with .Net CoreSample

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-28
    • 1970-01-01
    • 1970-01-01
    • 2022-10-04
    相关资源
    最近更新 更多