代码之家  ›  专栏  ›  技术社区  ›  Adam

我可以在工厂工作。在Nestjs中创建订阅卡夫卡主题?

  •  0
  • Adam  · 技术社区  · 6 年前

    文件建议使用 NestFactory.createMicroservice 创建一个交通订阅应用程序。

    我目前有一个基于REST的微服务,包含域逻辑和数据库连接。我想订阅卡夫卡短信的微服务。有可能在这个单一的微服务范围内做到这一点吗?我在文件里看不到。

    这让我想知道这种模式是否应该是:我应该用 雀巢工厂。createMicroservice 它将连接到Kafka,然后将消息分发到我的RESTAPI。。。过度休息?这意味着rest api将在rest上执行所有可能的“操作”,但间歇的微服务将在卡夫卡的消息后触发它。

    如果这是真的,这是否意味着随着我的应用程序的扩展,我最终可能会得到一个卡夫卡订阅的微服务,一个rest微服务?还是会有一个订阅的微服务触发多个REST API?或者也许。。。这取决于用例?

    0 回复  |  直到 6 年前
        1
  •  5
  •   Adam    5 年前

    可以在nest中连接这两种方法——微服务和普通应用。文档中没有提到这一点,但FAQ解释了如何制作 Hybrid application .

    这个 GRPC example 在行动中表现出来

    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