Nest.JS Kafka微服务仍然监听端口3000

5vf7fwbs  于 2023-10-15  发布在  Apache
关注(0)|答案(1)|浏览(111)

我有一个Nest.JS微服务,它的开头是这样的

const app = await NestFactory.createMicroservice<MicroserviceOptions>(AppModule, {
  transport: Transport.KAFKA,
  options: {
    client: {
      brokers: ['localhost:9092'],
    }
  }
});
await app.listen()

我在Kuberenets上运行这个微服务,我需要它监听端口3000(或其他端口,并不重要)的活动和就绪探测。问题是当我使用

NestFactory.createMicroservice()

app.listen()不接受端口号,我无法在选项中设置端口,因为传输Transport.Kafka也不接受它。
最好的方法是什么?我可以让它监听端口3000,同时仍然订阅Kafka Topic吗?

kcwpcxri

kcwpcxri1#

根据NestJ文档,您要做的是调用Hybrid App。混合应用程序是侦听来自两个或多个不同来源的请求的应用程序。

const app = await NestFactory.create(AppModule);

const microservice = app.connectMicroservice<MicroserviceOptions>({

  transport: Transport.KAFKA,
  options: {
    client: {
     brokers: ['localhost:9092'],
  }, 
  consumer: {
    groupId: 'some-consumer',
  },
 },
});

await app.startAllMicroservices();
await app.listen(3001);

你可以在这里阅读更多https://docs.nestjs.com/faq/hybrid-application

相关问题