Nest.js 将kafka客户端注入服务

Nest.js Inject kafka client to the service

我有一个 Nest.js 微服务应用程序。对于 MS 之间的消息代理,我使用的是 kafka。

现在我想在健康服务中注入同样的连接来测试它的状态。我不想创建新客户端和新连接。我需要在 main.ts.

中创建的那个
const microserviceOptions = {
  transport: Transport.KAFKA,
  options: {
    client: {
      clientId: `id`,
      brokers: [brokers],
    },
    consumer: {
      groupId: 'group-id',
    },
  },
};

理想情况下,我希望直接从 nestjs 获取 kafkajs 客户端,以创建生产者和消费者。

如果有人在搜索这个时遇到困难。我将现有的 kafka transprot 策略扩展到自定义传输器中并导入了它。

我将 ServerKafka 扩展为一个新的 class CustomServerKafka。新 class 只有 getConsumer 和 getProducer,因为消费者和生产者在 ServerKafka 中受到保护。

我使用单例 class 创建者来访问活跃的消费者