4

我们正在努力实现如下所示的架构,但我们将在云上提供微服务,并且在本地拥有一些微服务,它们将使用队列和总线相互通信,

事件总线的 RabbitMQ 实现

现在我对我们应该在哪里托管 MassTransit 和 RabbitMq 感到困惑,它也应该是一个 ASP.NET Core 项目吗?如果是的话,我会在里面做什么?开巴士?创建队列?我无法继续前进

4

2 回答 2

3

简单的 MassTransit 示例就是这样,与队列交互的绝对简单示例。

  1. RabbitMQ 是您的消息代理。它是单独托管的。
  2. MassTransit 是一个开发框架,通过抽象出特定于实现的“管道”,可以更轻松地与 RabbitMQ(或 Azure 服务总线)交互。
  3. 您可以编写任意数量的 .NET 服务,这些服务要么将消息发布到队列,要么订阅队列。
于 2017-11-16T16:13:26.170 回答
2

我们最近做了类似的事情,我们这样做的方式是:

RabbitMQ 是单独托管的,总线/队列的创建和管理是通过使用消息传递的服务完成的。

对于每个接收消息的服务,您使用 Maastransit 创建一个队列,因为服务将使用该队列接收消息。

如上所述,您将使用发布/订阅消息传递方式,在每个服务内部,创建一个具有逻辑名称的队列并连接到 RabbitMQ 服务器地址。

代表发送者的服务将发布您创建的自定义类型的消息,代表接收者的服务将通过在创建的总线内注册此类型的消费者来订阅此类消息。

希望能帮助到你。

于 2017-11-23T06:05:10.927 回答