apache-kafka - Nestjs中的NestFactory.create可以订阅kafka上的topic吗?

标签 apache-kafka architecture microservices nestjs

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

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

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

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

最佳答案

可以在 nest 中连接两种方法 - 微服务和普通应用程序。文档没有提到它,但常见问题解答解释了如何制作 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();

这样你就可以让rest api与kafka/rabbit/grpc连接

关于apache-kafka - Nestjs中的NestFactory.create可以订阅kafka上的topic吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64347565/

相关文章:

oop - 方法 JavaFx TreeItem getRoot() 不可见。它不是 OOP/MVC 的原因是什么?

architecture - 如何在客户端服务器架构中为已删除的数据生成增量?

node.js - 何时在 Node REST API中使用rabbitMQ?

unit-testing - Kafka Streams 测试 : java. util.NoSuchElementException:未初始化的主题: "output_topic_name"

java - 重新消费未提交偏移量的消息

apache-kafka - put() 在 Kafka Connect 接收器任务中多久触发一次?

python - KafkaProducer for Python 如果在命令行上完成则发送消息,但如果通过 Python 脚本完成则不会发送消息

objective-c - 基于Obj-C组件的游戏架构及消息转发

java - 如何关闭 dropwizard 应用程序?

mysql - 管理频繁更新和查询的表