Nestjs中的RabbitMQ,Producer和Consumer出错

dbf7pr2w  于 12个月前  发布在  RabbitMQ
关注(0)|答案(1)|浏览(162)

我试图用Rabbitmq在Nestjs中实现微服务,但我遇到了Producer:Disconnected from RMQ. Trying to reconnect. [Nest] 21700 - 08/05/2023,9:01:28 PM ERROR [ClientProxy] Object:
第一个月
和消费者还可以,这里我的生产者:

@Get()
async getUser() {
  return this.authService.send(
    {
    cmd : 'get-user'
    },
    {}
    )
}

字符串
这是我的消费者:

@MessagePattern({cmd : 'get-user'})
async getUser(@Ctx() context : RmqContext){
  const channel = context.getChannelRef()
  const message = context.getMessage()
  channel.ack(message)

  return {user: "User"}
}


这是consumer中的配置,在Producer中也是一样的:

async function bootstrap() {
  const app = await NestFactory.create(AuthModule);
  const configService = app.get(ConfigService)
  const USER = configService.get('RABBITMQ_USER');
  const PASSWORD = configService.get('RABBITMQ_PASS')
  const HOST = configService.get('RABBITMQ_HOST');
  const QUEUE = configService.get('RABBITMQ_AUTH_QUEUE');

   app.connectMicroservice<MicroserviceOptions>({
      transport : Transport.RMQ,
      options : {
        urls : [`amqp://${USER}:${PASSWORD}@${HOST}`],
        noAck : false,
        queue : QUEUE,
        queueOptions : {
          durable : true
        }
      }
      
   })

   app.startAllMicroservices();
}


怎么了?服务器正常工作...

pxiryf3j

pxiryf3j1#

此消息通常来自已声明的队列,该队列在部署后有一些更改。
最简单的解决方案是登录到Rabbit管理控制台,手动删除有问题的队列,然后重新启动NestJS应用程序,以便它可以使用新设置重新创建队列。
希望这有帮助

相关问题