Общая задача
Развернуть и настроить полную инфраструктуру Apache Kafka для обеспечения централизованного управления топиками и доступа к данным.
Технические требования
1. Инфраструктура
- 3 инстанса брокеров Kafka (допускается запуск на одной физической/виртуальной ноде)
- ZooKeeper (как минимум один инстанс) для координации брокеров
- Обеспечить стабильную работу кластера с отказоустойчивостью
2. Мониторинг
- Обязательно: метрика размера необработанной очереди (lag) - разница между последним offset продюсера и последним коммитом для каждой consumer group
- Опционально: общая длина каждого топика, метрики брокеров (память, диск, network I/O)
- Подключить систему мониторинга (например, Kafka Exporter + Prometheus + Grafana) для визуализации задержек и нагрузки
3. Реестр топиков и users/groups
- Создать единый реестр (может быть конфигурационный файл или таблица в БД), который содержит:
- Список всех топиков с описанием
- Список consumer group, их права доступа (чтение/запись) к конкретным топикам
- Авторизационные данные для каждого пользователя, жёстко привязанные к одной или нескольким группам)
4. Управление через веб-интерфейс или конфиги
- Все действия по добавлению/удалению топиков и consumer groups должны выполняться только через веб-интерфейс (Kafka UI, AkHQ, CMCAK и т.п.) или с помощью server.properties / сценариев ops
- Строгий запрет: клиентские приложения не могут сами создавать топики или защищать consumer groups при подписке (отключить auto.create.topics.enable, проверять group при первом коммите)
5. Аутентификация и авторизация
- Включить ACL (mutual TLS, SASL/SCRAM или SASL/PLAIN) для авторизации - у каждого пользователя permission привязаны к individual matching group
- Право на запись: только если группе разрешено производить данные в указанный топик
- Права читать фиксированный consumption из конкретных ссылок
Ожидаемый результат
- Полностью настроенный кластер Kafka (3 brokers + ready service point)
- Экспорт метрик -> dashboard с lag и здравый портрег
- Документирована инструкция/скрипты для обновления базы users
- 1 click за два слова запустить лампо звучит так же очеловечен верфт лага
Клиент сам решает, универсально команда без продавца.