atls / nestjs

NestJS Custom Workshop
BSD 3-Clause "New" or "Revised" License
33 stars 8 forks source link

NestJS Kafka #316

Closed TorinAsakura closed 1 day ago

TorinAsakura commented 3 days ago

С чем связан запрос на фичу?

NestJS не имеет встроенной поддержки

Расскажите как вы это себе видите

  1. kafkaLogCreator: Создаёт функцию для обработки логов Kafka. Использует Logger для кастомного логирования с уровнями логов (error, warn, info, debug). Может работать с различными пространствами имён (namespace), создавая подлоггер при необходимости.
  2. KafkaConfigFactory: Конфигурирует Kafka-клиент, используя либо переданные параметры, либо значения из переменных окружения. Возвращает объект конфигурации для Kafka, включая clientId и список брокеров.
  3. KafkaFactory: Использует KafkaConfigFactory для создания экземпляра Kafka с учётом настроек логирования (logCreator). Позволяет передавать дополнительные опции через параметр options.
  4. KafkaModule: Предоставляет метод register, позволяющий зарегистрировать модуль с конфигурацией Kafka. Внедряет и экспортирует KafkaConfigFactory и KafkaFactory.

Зачем это нужно?

  1. Централизация конфигурации Kafka: Модуль позволяет легко и централизованно управлять конфигурацией и логированием для подключения к Kafka.
  2. Гибкая настройка логирования: kafkaLogCreator обеспечивает интеграцию кастомного логирования с использованием kafkajs.
  3. NestJS-стиль внедрения зависимостей: Использование DI (Dependency Injection) NestJS для подключения к Kafka, что упрощает поддержку и масштабирование кода.

Материалы

https://docs.nestjs.com/microservices/kafka