美好的一天!
我正在尝试实现 2 个通过消息代理相互通信的微服务
。 但是其中之一应该通过 REST-Api 接受 Http 请求
。不幸的是,我不明白如何让微服务同时监听消息队列和传入的 HTTP 请求。也许我不了解通过消息代理进行通信的范例,但是如何接收来自客户端的请求并将它们转发给微服务架构?
Main.ts
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
import {Transport, MicroserviceOptions} from '@nestjs/microservices'
async function bootstrap() {
const app = await NestFactory.createMicroservice<MicroserviceOptions>(AppModule, {
transport: Transport.RMQ,
options: {
urls: ['amqp://rabbitmq:5672'],
queue: 'hello_world',
queueOptions: {
durable: false
},
},
});
await app.listen();
}
bootstrap();
如您所见,现在应用程序不再像标准方法那样监听端口 3000。应该怎么办?
最佳答案
事实证明答案很简单。 NEST js 具有混合应用程序。你可以在这里了解他们https://docs.nestjs.com/faq/hybrid-application#hybrid-application .谢谢大家
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
import {Transport, MicroserviceOptions} from '@nestjs/microservices'
async function bootstrap() {
const app = await NestFactory.create(AppModule);
const microservice = app.connectMicroservice({
transport: Transport.RMQ,
options: {
urls: ['amqp://rabbitmq:5672'],
queue: 'hello_world',
queueOptions: {
durable: false
},
},
});
await app.startAllMicroservices();
await app.listen(3000);
}
bootstrap();
关于javascript - 如何在 Nest App 中使用 RabbitMQ 和 REST-API?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70796428/