node.js - NestJS - 在微服务中将 HTTP 与 MQTT 和 TCP 结合起来

标签 node.js tcp microservices mqtt nestjs

根据 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/

相关文章:

javascript - Fastify:何时使用插件而不是常规模块?

PHP socket_write 失败仅在下次调用时返回错误

c++ - 我可以重复使用 TCP 连接吗?

c++ - boost asio tcp ip 写入

java - 为 Spring Boot 微服务创建 pojo

java - 如何在微服务的多个实例之间维护 SseEmitters 列表?

java - 如何在所有微服务中维护相同的 Spring Boot 版本?

javascript - NodeJS : Very large JSON from remote resource parsing

html - 获取 Angular js 中返回的 JSON 对象的值

javascript - 如何通过 collection.update 在 mongodb 上使用 ttl(生存时间)?