根据 NestJS 文档 hybrid应用:
To connect multiple microservice instances, simply pass additional microservice configuration objects as arguments in a comma-separated list.
这是实现多个微服务实例的正确方法吗?
app.connectMicroservice({
transport: Transport.TCP,
options: {
port: 3000
},
{
transport: Transport.MQTT,
options: {
url: process.env.MQTT_CLIENT + ':1883'
}
}
})
最佳答案
是的。您可以连接多个微服务,即使它们使用相同的传输策略(例如 3 个 Redis 微服务,每个微服务都使用自己的 Redis 实例)。
这是我的一个工作/生产项目的示例:
const app = await NestFactory.create(rootModuleClass);
app.connectMicroservice({
strategy: new CloudServerPubSub({
clientConfig: {
keyFile: configService.get('EVENT_BUS_CREDENTIALS_FILEPATH'),
},
}),
});
app.startAllMicroservices();
await app.listen(3000);
这允许应用既监听 Google Cloud Pub/Sub 消息并响应 HTTP 请求。
关于node.js - NestJS - 在微服务中将 HTTP 与 MQTT 和 TCP 结合起来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60904203/