使用 Nestjs 监听多个 RabbitMQ 队列

Sar*_*aro 2 javascript rabbitmq node.js microservices nestjs

我正在查看 Nestjs 文档来设置一个监听 RabbitMQ 消息的微服务。当我必须听一个队列时,这是非常直接的。如果我的微服务必须监听多个队列怎么办?我正在使用在 main.ts 文件中完成的以下方法。

await app.connectMicroservice({
    transport: Transport.RMQ,
    options: {
      urls: ['amqp://localhost:5672'],
      queue: 'q-1',
      queueOptions: {
        durable: false
      },
    },
  });
Run Code Online (Sandbox Code Playgroud)

现在我有多个队列,我可以调用另一个 connectMicroservice 函数来这样做。但是,在我的控制器中使用消息时,无法告诉我的控制器要侦听哪个队列(q-1 或 q-2)。我所知道的是,有一个@MessagePattern 装饰器可以提及在该函数中使用什么模式,但不确定如何提及队列名称。请帮忙。

Jes*_*ter 7

当涉及到这些类型的场景时,RabbitMQ 的内置 NestJS 微服务实现有点受限。

@ golevelup / nestjs-RabbitMQ的 是专门建造的功能来解决这些缺陷。它为您提供了更好的集成,使您可以在单个 NestJS 应用程序或微服务中直观地与多个 RabbitMQ 交换和队列进行交互。它还旨在为不同的消息传递模式(如发布/订阅和 RPC)提供更好的支持。

免责声明:我是这个包的作者