繁体   English   中英

Nestjs中的NestFactory.create可以订阅kafka上的主题吗?

[英]Can NestFactory.create in Nestjs subscribe to topics on kafka?

该文档建议使用NestFactory.createMicroservice创建传输订阅应用程序。

我目前有一个基于 REST 的微服务,其中包含域逻辑和到数据库的连接。 我想在该微服务上订阅 Kafka 消息。 是否可以在这个单一微服务的范围内做到这一点? 我在文档中看不到。

这让我想知道模式是否应该是:我应该使用NestFactory.createMicroservice创建一个额外的微服务,它将连接到 Kafka,然后将消息分发到我的 REST API ......通过 REST? 这意味着 rest api 将使所有可能的“动作”发生在 rest 上,但间歇性微服务将根据 Kafka 的消息触发它。

如果这是真的,这是否意味着随着我的应用程序的扩展,我最终可能会为每个其余微服务订阅一个 Kafka 微服务? 或者是否会有一个订阅微服务会触发多个 REST API? 或者……这取决于用例?

可以在 Nest 中连接这两种方法 - 微服务和普通应用程序。 文档没有提到它,但 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 的 rest api

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM