Как в микросервисе на nest.js работать сразу с несколькими брокерами сообщений?

Как в микросервисе работать сразу с несколькими брокерами сообщений? я сейчас написал TCP обмен так
await NestFactory.createMicroservice(AppModule, 
  {
   transport: Transport.TCP,
   options: {
    host: "::",
    port: 3010
   }
  }

но я хочу ещё поиграться с кафкой. я не могу массивом передать второй аргумент (он билдится, но подключиться к нему нельзя)
const app = await NestFactory.createMicroservice(AppModule,[
  {
   transport: Transport.TCP,
   options: {
    host: "::",
    port: 3010
   }
  },
  {
   transport: Transport.KAFKA,
   options: {
    client: {
     brokers: ["localhost:9092"]
    },
    consumer: {
     groupId: "test-consumer"
    }
   }
  }]
  );
  await app.listen();
  Logger.log(` Microservice courses is running`);

при подключении пишет

Error: connect ECONNREFUSED :::3010
at TCPConnectWrap.afterConnect [as oncomplete]
Как настроить сразу два протокола обмена сообщениями?
  • Вопрос задан
  • 107 просмотров
Решения вопроса 1
@Sing303
А такое решение не подойдёт?

const microserviceTcp = await NestFactory.createMicroservice(AppModule, {
    transport: Transport.TCP,
    options: {
      host: "::",
      port: 3010,
    },
  });

  const microserviceKafka = await NestFactory.createMicroservice(AppModule, {
    transport: Transport.KAFKA,
    options: {
      client: {
        brokers: ["localhost:9092"],
      },
      consumer: {
        groupId: "test-consumer",
      },
    },
  });

  await Promise.all([
    microserviceTcp.listenAsync(),
    microserviceKafka.listenAsync(),
  ]);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы