Nest JS - объединение HTTP с MQTT и TCP в микросервисах - PullRequest
0 голосов
/ 28 марта 2020

Согласно документации Nest JS для гибридного приложения:

Чтобы подключить несколько экземпляров микросервиса, просто передайте дополнительные объекты конфигурации микросервиса в качестве аргументов в списке через запятую .

Является ли это правильным способом реализации более одного экземпляра микросервиса?

app.connectMicroservice({
        transport:  Transport.TCP,
        options: {
             port: 3000
         },
         {
           transport: Transport.MQTT,
           options: {
               url: process.env.MQTT_CLIENT + ':1883'
           }
         }
    })

1 Ответ

0 голосов
/ 29 марта 2020

Да, это так. И вы можете подключить несколько микросервисов, даже если они используют одну и ту же транспортную стратегию (например, 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.

...