javascript - 使用 Nestjs 监听多个 RabbitMQ 队列

标签 javascript node.js rabbitmq microservices nestjs

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

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

现在我有多个队列,我可以调用另一个 connectMicroservice 函数来执行此操作。但是,当在我的 Controller 中使用消息时,无法告诉我的 Controller 要监听哪个队列(q-1 或 q-2)。我所知道的是,有一个 @MessagePattern 装饰器可以提及在该函数中使用什么模式,但不确定如何提及队列名称。

最佳答案

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

@golevelup/nestjs-rabbitmq package专为解决这些功能差距而构建。它为您提供了更好的集成,使您可以直观地与单个 NestJS 应用程序或微服务内的多个 RabbitMQ 交换器和队列进行交互。它还旨在为发布/订阅和 RPC 等不同的消息传递模式提供更好的支持。

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

关于javascript - 使用 Nestjs 监听多个 RabbitMQ 队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62949674/

相关文章:

javascript - 在不重新加载页面的情况下更改整个 URL

javascript - 在 JSF 中 - 获取客户端的语言环境(以浏览器的时区显示时间)

mysql - TypeORM with MySQL Error : Pool is closed. 调用数据库时测试卡住了

docker - 如何在 docker-compose 中将 Flower 连接到代理 RabbitMQ

asp.net-web-api - ASP.Net Web API - 扩展大量写操作

python - 卡在 Celery 队列中的任务

javascript - ajax 调用后无法更改 css 属性

javascript - 使用二进制值混淆 javascript 代码?

java - websocket 上可能有不同的语言吗?

node.js - Azure Devops - 将变量组应用于纯 Angular 应用程序