Этот сервис будет примимать события от других компонентов системы, сохраняя их в Kafka, и последующей передачей через ETL процесс в OLAP ClickHouse. А так же позволит регистрировать лайки пользователей, их закладки и рецензии на фильмы. Ссылка на приватный репозиторий с командной работой.
Перед реализацией проекта были проведены сравнительные тесты:
- Код приложения на Python + fastapi.
- Хранилище BigData - MongoDB.
- Транзакционное хранилище (OLTP) - Kafka.
- Аналитическое хранилище (OLAP) - ClickHouse.
- Сборщики логов: Sentry и ELK.
- Все компоненты системы запускаются через Docker-compose.
git clone [email protected]:RuslanSibgatulin/ugc_sprint_2.git
KAFKA_HOST=broker
KAFKA_PORT=29092
SECRET_KEY=secret
HASH_ALGORITHM=SHA-256
MONGO_HOST=mongos1
MONGO_PORT=27019
LOGSTASH_HOST=logstash
LOGSTASH_PORT=5044
SENTRY_DSN=
WEBAPP_WORKERS_PER_CORE=1
WEBAPP_HOST=0.0.0.0
WEBAPP_PORT=8888
WEBAPP_LOG_LEVEL=debug
KAFKA_HOST=broker
KAFKA_PORT=29092
KAFKA_TOPIC=views
BATCH_SIZE=10
READ_TIMEOUT=1000
CLICKHOUSE_SERVER=clickhouse
Выполнить в терминале:
make start