Good Day!
I'm trying to implement 2 microservices that municate with each other through a message broker
. But one of them should accept Http requests via REST-Api
. Unfortunately, I don't understand how to make the microservice listen to both the message queue and ining HTTP requests. Perhaps I don’t understand something in the paradigm of munication through a message broker, but how then to receive requests from the client and forward them to the microservice architecture?
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();
As you can see, now the application is not listening on port 3000 as in the standard approach. What should be done?
Good Day!
I'm trying to implement 2 microservices that municate with each other through a message broker
. But one of them should accept Http requests via REST-Api
. Unfortunately, I don't understand how to make the microservice listen to both the message queue and ining HTTP requests. Perhaps I don’t understand something in the paradigm of munication through a message broker, but how then to receive requests from the client and forward them to the microservice architecture?
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();
As you can see, now the application is not listening on port 3000 as in the standard approach. What should be done?
Share asked Jan 21, 2022 at 4:32 MiyRonMiyRon 4367 silver badges20 bronze badges1 Answer
Reset to default 9The answer turned out to be quite simple. NEST js has hybrid apps. You can get to know them here https://docs.nestjs./faq/hybrid-application#hybrid-application. Thanks everyone
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();