0

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

4

1 回答 1

0

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

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

MassTransit 包括几个控制接收端点行为的接收端点级配置选项。

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

将 Azure 服务总线与 MassTransit 结合使用时,除了常规终结点之外,您还可以添加订阅终结点。

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

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

class YourConsumer :
    IConsumer<RegisterNewCustomerCommand>
{}

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

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

请参阅将 MassTransit 与 RabbitMQ 一起使用发送消息MassTransit + RabbitMQ 与 .Net Core示例

于 2021-10-19T08:23:01.757 回答