nestjs中的nestfactory.create可以订阅Kafka的主题吗?

dffbzjpn  于 2021-06-04  发布在  Kafka
关注(0)|答案(1)|浏览(408)

文档建议使用 NestFactory.createMicroservice 创建传输订阅应用程序。
我目前有一个基于rest的微服务,它包含域逻辑和到数据库的连接。我想订阅Kafka的信息。有没有可能在这个单一的微服务范围内做到这一点?我在文件里看不到。
这让我想知道模式是否应该是:我应该用 NestFactory.createMicroservice 它将连接到kafka,然后将消息分发到我的restapi。。。过度休息?这意味着restapi将在rest上执行所有可能的“操作”,但是间歇的微服务将在kafka的消息中触发它。
如果这是真的,那是否意味着随着我的应用程序的扩展,我可能会得到一个kafka订阅的微服务每一个rest微服务?还是会有一个订阅的微服务触发多个restapi?或者。。。这取决于用例?

bnl4lu3b

bnl4lu3b1#

以上是一种潜在的应用程序体系结构,尽管可以在嵌套中连接这两种方法。microservice文档没有提到它,但是faq解释了如何创建一个混合应用程序。
grpc的例子展示了它的实际应用

import { NestFactory } from '@nestjs/core';
import { MicroserviceOptions } from '@nestjs/microservices';
import { AppModule } from './app.module';
import { grpcClientOptions } from './grpc-client.options';

async function bootstrap() {

  const app = await NestFactory.create(AppModule);
  app.connectMicroservice<MicroserviceOptions>(grpcClientOptions);

  await app.startAllMicroservicesAsync();
  await app.listen(3001);
  console.log(`Application is running on: ${await app.getUrl()}`);
}
bootstrap();

这样您就可以连接带有kafka/rabbit/grpc的restapi

相关问题