Skip to content

Консьюмер сообщений

Data.Rentgen получает сообщения из брокера сообщений с использованием консьюмера на основе FastStream, парсит входящие сообщения и создает все распознанные сущности в базе данных. Некорректные сообщения отправляются обратно в брокер в другой топик.

Установка и запуск

С docker

  • Установите Docker

  • Установите docker-compose

  • Выполните следующую команду:

    $ docker compose --profile consumer up -d --wait
    ...
    

    docker-compose загрузит все необходимые образы, создаст контейнеры, а затем запустит процесс консьюмера.

    Параметры можно задать через файл .env или секцию environment в docker-compose.yml

    docker-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
    ...
    

См. также

Конфигурация консьюмера