我正在查看 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/