¡Buenos días!
Estoy tratando de implementar 2 microservices that communicate with each other through a message broker . But one of them should accept Http requests via REST-Api . Desafortunadamente, no entiendo cómo hacer que el microservicio escuche tanto la cola de mensajes como las solicitudes HTTP entrantes. Tal vez no entiendo algo en el paradigma de la comunicación a través de un intermediario de mensajes, pero ¿cómo recibir solicitudes del cliente y reenviarlas a la arquitectura de microservicios?
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();Como puede ver, ahora la aplicación no está escuchando en el puerto 3000 como en el enfoque estándar. ¿Lo que debe hacerse?
La respuesta resultó ser bastante simple. NEST js tiene aplicaciones híbridas. Puede conocerlos aquí https://docs.nestjs.com/faq/hybrid-application#hybrid-application . Gracias a todos
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();