如何托管MassTransit和RabbitMq
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何托管MassTransit和RabbitMq相关的知识,希望对你有一定的参考价值。
我们正在努力建立一个类似下面的体系结构,但我们将在云上提供微服务,一些内部将使用队列和总线相互通信,
现在我对我们应该托管MassTransit和RabbitMq的地方感到困惑,它本身也应该是一个ASP.NET核心项目吗?如果是的话我会做什么呢?开公共汽车?创建队列?我无法继续前进
答案
简单的MassTransit示例就是与队列交互的绝对最简单的示例。
- RabbitMQ是您的消息代理。它是单独托管的。
- MassTransit是一个开发框架,通过抽象出特定于实现的“管道”,可以更轻松地与RabbitMQ(或Azure Service Bus)进行交互。
- 您可以编写任意数量的.NET服务,这些服务可以将消息发布到队列,也可以订阅队列。
另一答案
我们最近在做类似的事情,我们这样做的方式是:
RabbitMQ是单独托管的,并且使用消息传递的服务完成了总线/队列的创建和管理。
对于接收消息的每个服务,您使用Maastransit创建队列,因为服务将使用此队列接收消息。
您将使用发布/订阅消息传递方式,如上所述,在每个服务中,创建一个具有逻辑名称的队列并连接到RabbitMQ服务器地址。
代表发件人的服务将发布您创建的自定义类型的消息,代表接收者的服务将通过在创建的总线内注册此类型的使用者来订阅此类消息。
希望能帮助到你。
以上是关于如何托管MassTransit和RabbitMq的主要内容,如果未能解决你的问题,请参考以下文章
如何在实体框架中持久保存 MassTransit 状态数据?
配置连接时如何将 x-max-length 和 x-overflow 添加到 MassTransit 队列?
MassTransit:在消费者消费完所有消息后如何停止公共汽车?
如何在 ASP.NET Core Web API 中使用 MassTransit 事件总线?