我试图用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();
}
型
怎么了?服务器正常工作...
1条答案
按热度按时间pxiryf3j1#
此消息通常来自已声明的队列,该队列在部署后有一些更改。
最简单的解决方案是登录到Rabbit管理控制台,手动删除有问题的队列,然后重新启动NestJS应用程序,以便它可以使用新设置重新创建队列。
希望这有帮助