我试图了解 Nest 微服务的工作原理。
让我们从文档中的这个示例开始(https://docs.nestjs.com/faq/hybrid-application)
const app = await NestFactory.create(AppModule);
// microservice #1
const microserviceTcp = app.connectMicroservice<MicroserviceOptions>({
transport: Transport.TCP,
options: {
port: 3001,
},
});
// microservice #2
const microserviceRedis = app.connectMicroservice<MicroserviceOptions>({
transport: Transport.REDIS,
options: {
url: 'redis://localhost:6379',
},
});
await app.startAllMicroservicesAsync();
await app.listen(3001);
Run Code Online (Sandbox Code Playgroud)
在查看源代码(https://github.com/nestjs/nest)后,我明白connectMicroservice创建一个net.Serverwhen using TCP,并且服务器在startAllMicroservicesAsync调用时开始监听。但随后app.listen应该初始化基础 Nest Web 服务器的监听。
为什么这不会导致错误?
我检查了如果端口上连接了两个微服务会发生什么。它肯定会引发错误。我在这里缺少什么?
// CODE CAUSES ERROR AS EXPECTED
const app = await NestFactory.create(AppModule);
// microservice #1
const microserviceTcp …Run Code Online (Sandbox Code Playgroud)