Консьюмер сообщений
Data.Rentgen получает сообщения из брокера сообщений с использованием консьюмера на основе FastStream, парсит входящие сообщения и создает все распознанные сущности в базе данных. Некорректные сообщения отправляются обратно в брокер в другой топик.
Установка и запуск
С docker
-
Установите Docker
-
Установите docker-compose
-
Выполните следующую команду:
$ docker compose --profile consumer up -d --wait ...docker-composeзагрузит все необходимые образы, создаст контейнеры, а затем запустит процесс консьюмера.Параметры можно задать через файл
.envили секциюenvironmentвdocker-compose.ymldocker-compose.yml
consumer: image: mtsrus/data-rentgen:${VERSION:-latest} command: python -m data_rentgen.consumer --host 0.0.0.0 --port 8000 restart: unless-stopped env_file: .env.docker ports: - 8001:8000 healthcheck: test: [CMD-SHELL, curl -f http://localhost:8000/monitoring/ping] interval: 30s timeout: 5s retries: 3 start_period: 5s depends_on: broker: condition: service_healthy db-migration: condition: service_completed_successfully profiles:
.env.docker
Common backend config
DATA_RENTGEN__DATABASE__URL=postgresql+asyncpg://data_rentgen:changeme@db:5432/data_rentgen DATA_RENTGEN__LOGGING__PRESET=colored
See Backend -> Consumer -> Configuration documentation
DATA_RENTGEN__KAFKA__BOOTSTRAP_SERVERS=["broker:9092"] DATA_RENTGEN__KAFKA__SECURITY__TYPE=SCRAM-SHA-256 DATA_RENTGEN__KAFKA__SECURITY__USER=data_rentgen DATA_RENTGEN__KAFKA__SECURITY__PASSWORD=changeme DATA_RENTGEN__KAFKA__COMPRESSION=zstd
Без docker
-
Установите Python 3.10 или выше
-
Настройте базу данных, выполните миграции и создайте партиции
-
Настройте [брокер сообщений][DB-DR-doc-reference-broker]
-
Создайте виртуальное окружение
$ python -m venv /some/.venv ... $ source /some/.venv/activate ... -
Установите пакет
data-rentgenсо следующими дополнительными зависимостями:$ pip install data-rentgen[consumer,postgres] ...Note
Для механизма аутентификации
SASL_GSSAPIвам также необходимо установить системные пакеты, предоставляющие бинарные файлыkinitиkdestroy:А затем установить дополнение$ apt install libkrb5-dev krb5-user gcc make autoconf # Основанные на Debian ... $ dnf install krb5-devel krb5-libs krb5-workstation gcc make autoconf # CentOS, OracleLinux ...gssapi:$ pip install data-rentgen[consumer,postgres,gssapi] ... -
Запустите процесс консьюмера
$ python -m data_rentgen.consumer ...