feat: добавлено создание топика Kafka с настройкой ретеншна
- Добавлена переменная KAFKA_TOPIC_RETENTION_HOURS в env.example (по умолчанию 12 часов) - Создана команда kafka-create-topic в Makefile для создания топика с ретеншном - Интегрировано автоматическое создание топика в команду setup - Команда использует переменные из .env файла для настройки топика - Добавлена проверка существования переменных окружения - Автор: Сергей Антропов, сайт: https://devops.org.ru
This commit is contained in:
parent
800fcde880
commit
a513408c64
25
Makefile
25
Makefile
@ -6,7 +6,7 @@ PROJECT_NAME := sensus-infra
|
|||||||
COMPOSE_FILE := docker-compose.yml
|
COMPOSE_FILE := docker-compose.yml
|
||||||
|
|
||||||
.PHONY: help setup up down restart status logs clean ps
|
.PHONY: help setup up down restart status logs clean ps
|
||||||
.PHONY: kafka-topics kafka-ui postgres-cli clickhouse-cli
|
.PHONY: kafka-topics kafka-create-topic kafka-ui postgres-cli clickhouse-cli
|
||||||
.PHONY: health-check backup restore ssl-generate ssl-clean ssl-info
|
.PHONY: health-check backup restore ssl-generate ssl-clean ssl-info
|
||||||
.PHONY: docker-install docker-update docker-compose-install docker-compose-update docker-check
|
.PHONY: docker-install docker-update docker-compose-install docker-compose-update docker-check
|
||||||
|
|
||||||
@ -38,6 +38,8 @@ setup: ## Первоначальная настройка инфраструкт
|
|||||||
@echo "⏳ Ожидание готовности сервисов..."
|
@echo "⏳ Ожидание готовности сервисов..."
|
||||||
@sleep 30
|
@sleep 30
|
||||||
@$(MAKE) health-check
|
@$(MAKE) health-check
|
||||||
|
@echo "📝 Создание топика Kafka..."
|
||||||
|
@$(MAKE) kafka-create-topic
|
||||||
@echo "✅ Инфраструктура готова к работе!"
|
@echo "✅ Инфраструктура готова к работе!"
|
||||||
|
|
||||||
# =============================================================================
|
# =============================================================================
|
||||||
@ -185,6 +187,27 @@ kafka-topics: ## Показать список топиков Kafka
|
|||||||
@echo "📋 Список топиков Kafka:"
|
@echo "📋 Список топиков Kafka:"
|
||||||
docker exec sensus-kafka kafka-topics --bootstrap-server localhost:9092 --list
|
docker exec sensus-kafka kafka-topics --bootstrap-server localhost:9092 --list
|
||||||
|
|
||||||
|
kafka-create-topic: ## Создать топик Kafka с настройкой ретеншна
|
||||||
|
@echo "📝 Создание топика Kafka..."
|
||||||
|
@if [ -z "$$KAFKA_TOPIC" ]; then \
|
||||||
|
echo "❌ Переменная KAFKA_TOPIC не задана в .env файле"; \
|
||||||
|
exit 1; \
|
||||||
|
fi
|
||||||
|
@if [ -z "$$KAFKA_TOPIC_RETENTION_HOURS" ]; then \
|
||||||
|
echo "❌ Переменная KAFKA_TOPIC_RETENTION_HOURS не задана в .env файле"; \
|
||||||
|
exit 1; \
|
||||||
|
fi
|
||||||
|
@echo "🔧 Создание топика: $$KAFKA_TOPIC с ретеншном: $$KAFKA_TOPIC_RETENTION_HOURS часов"
|
||||||
|
@docker exec sensus-kafka kafka-topics \
|
||||||
|
--bootstrap-server localhost:9092 \
|
||||||
|
--create \
|
||||||
|
--topic $$KAFKA_TOPIC \
|
||||||
|
--partitions $$KAFKA_NUM_PARTITIONS \
|
||||||
|
--replication-factor $$KAFKA_DEFAULT_REPLICATION_FACTOR \
|
||||||
|
--config retention.ms=$$(($$KAFKA_TOPIC_RETENTION_HOURS * 3600000)) \
|
||||||
|
--if-not-exists || echo "⚠️ Топик уже существует или произошла ошибка"
|
||||||
|
@echo "✅ Топик $$KAFKA_TOPIC создан с ретеншном $$KAFKA_TOPIC_RETENTION_HOURS часов"
|
||||||
|
|
||||||
kafka-ui: ## Открыть Kafka UI в браузере
|
kafka-ui: ## Открыть Kafka UI в браузере
|
||||||
@echo "🌐 Kafka UI доступен по адресу: http://localhost:8080"
|
@echo "🌐 Kafka UI доступен по адресу: http://localhost:8080"
|
||||||
|
|
||||||
|
@ -40,6 +40,7 @@ KAFKA_UI_USER_ROLES=ADMIN
|
|||||||
|
|
||||||
# Kafka топики
|
# Kafka топики
|
||||||
KAFKA_TOPIC=sensus.metrics
|
KAFKA_TOPIC=sensus.metrics
|
||||||
|
KAFKA_TOPIC_RETENTION_HOURS=12
|
||||||
KAFKA_GROUP_ID=sensus-worker
|
KAFKA_GROUP_ID=sensus-worker
|
||||||
KAFKA_CLIENT_ID=sensus-worker
|
KAFKA_CLIENT_ID=sensus-worker
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user