2. Конфигурация модуля ПОДД-адаптер - Avro-defragmentator (application.yml)

Файл application.yml – основной конфигурационный файл модуля, в котором задана его логика и порядок работы модуля.

2.1. Пример файла application.yml

В конфигурационном файле следует задавать только те настройки, которые необходимы для решения текущих бизнес-задач.

application:
  path: ${APPLICATION_PATH:/var/lib/podd-avro-defragmentator}
  destination_chunk_max_record_count: ${APPLICATION_DESTINATION_CHUNK_MAX_RECORD_COUNT:500}
  request_life_time: 24
  garbage_period: 24
  zookeeper:
    connectionString: ${APPLICATION_ZOOKEEPER_CONNECTIONSTRING:localhost}
    sessionTimeoutMs: ${APPLICATION_ZOOKEEPER_SESSIONTIMEOUTMS:30000}
    connectionTimeoutMs: ${APPLICATION_ZOOKEEPER_CONNECTIONTIMEOUTMS:86400000}
    chroot: ${APPLICATION_ZOOKEEPER_CHROOT:/adapter}

environment:
  name: ${ENVIRONMENT_NAME:test}

kafka:
  agent.topic.prefix: ${AGENT_TOPIC_PREFIX:}
  max-concurrent-handle: ${KAFKA_MAX_CONCURRENT_HANDLE:100}
  commit-interval: ${KAFKA_COMMIT_INTERVAL:5s}
  external:
    bootstrap.servers: ${KAFKA_BOOTSTRAP_SERVERS:localhost:9092}
    topic.prefix: ${EXTERNAL_TOPIC_PREFIX:${kafka.agent.topic.prefix}}
  consumer:
    bootstrap-servers: ${kafka.external.bootstrap.servers}
    group-id: ${KAFKA_CONSUMER_GROUPID:defragmentator-consumer}
    topic: ${kafka.external.topic.prefix}query.tp.bin
  producer:
    bootstrap-servers: ${kafka.external.bootstrap.servers}
    topic: ${kafka.external.topic.prefix}query.tp

logging:
  level:
    ru.itone.datamart: ${LOGGING_LEVEL_RUITONEDATAMART:debug}

metrics:
  port: ${METRICS_PORT:9837}

3. Параметры конфигурации

Настройка конфигурации ПОДД-адаптера - Avro-defragmentator осуществляется путем редактирования параметров настроек в файле application.yml, где настраиваются секции:

  • application - настройка модуля в части указания топиков взаимодействия и размера обрабатываемых данных;

  • environment - указывается название окружения (test, prod и т.д.);

  • kafka - настройка подключения к серверу Kafka для Поставщика и Получателя данных;

  • logging - настройка параметров логирования модуля;

  • metrics - настройка получения метрик.

3.1. Секция application

Секция application предназначена для настройки ПОДД-адаптера - Avro-defragmentator в части указания топиков взаимодействия и размера обрабатываемых данных.

Например:

application:
  path: ${APPLICATION_PATH:/var/lib/podd-avro-defragmentator}
  destination_chunk_max_record_count: ${APPLICATION_DESTINATION_CHUNK_MAX_RECORD_COUNT:500}
  request_life_time: 24
  garbage_period: 24
  zookeeper:
    connectionString: ${APPLICATION_ZOOKEEPER_CONNECTIONSTRING:localhost}
    sessionTimeoutMs: ${APPLICATION_ZOOKEEPER_SESSIONTIMEOUTMS:30000}
    connectionTimeoutMs: ${APPLICATION_ZOOKEEPER_CONNECTIONTIMEOUTMS:86400000}
    chroot: ${APPLICATION_ZOOKEEPER_CHROOT:/adapter}

Параметры настроек

  • path – рабочая папка на локальном диске, в которой будут создаваться подпапки для сохранения чанков, например APPLICATION_PATH:/var/lib/podd-avro-defragmentator;

  • destination_chunk_max_record_count - максимальное количество строк в сообщении для destination_topic, например APPLICATION_DESTINATION_CHUNK_MAX_RECORD_COUNT:500;

  • request_life_time - время жизни запроса, пока идет сборка;

  • garbage_period - время жизни отдельных, несобранных порций данных;

  • connectionString - строка подключения к zookeeper, например APPLICATION_ZOOKEEPER_CONNECTIONSTRING:localhost;

  • sessionTimeoutMs - таймаут сессии, например APPLICATION_ZOOKEEPER_SESSIONTIMEOUTMS:30000;

  • connectionTimeoutMs - таймаут подключения, например APPLICATION_ZOOKEEPER_CONNECTIONTIMEOUTMS:86400000;

  • chroot - путь до каталога сохранения в ZK, например APPLICATION_ZOOKEEPER_CHROOT:/test.

3.2. Секция environment

В секции environment указывается среда разработки (dev, test, stable, prod)

Например:

environment:
  name: ${ENVIRONMENT_NAME:test}

Параметры настроек

  • name - среда разработки, например ENVIRONMENT_NAME:test.

3.3. Секция kafka

Секция kafka предназначена для настройки модуля в части указания адреса сервера Kafka для Поставщика данных (producer) и Получателя данных (consumer).

kafka:
  agent.topic.prefix: ${AGENT_TOPIC_PREFIX:}
  max-concurrent-handle: ${KAFKA_MAX_CONCURRENT_HANDLE:100}
  commit-interval: ${KAFKA_COMMIT_INTERVAL:5s}
  external:
    bootstrap.servers: ${KAFKA_BOOTSTRAP_SERVERS:localhost:9092}
    topic.prefix: ${EXTERNAL_TOPIC_PREFIX:${kafka.agent.topic.prefix}}
  consumer:
    bootstrap-servers: ${kafka.external.bootstrap.servers}
    group-id: ${KAFKA_CONSUMER_GROUPID:defragmentator-consumer}
    topic: ${kafka.external.topic.prefix}query.tp.bin
  producer:
    bootstrap-servers: ${kafka.external.bootstrap.servers}
    topic: ${kafka.external.topic.prefix}query.tp

Параметры настроек

  • consumer - настройка адреса сервера Kafka для Получателя данных;

  • bootstrap-servers - адрес кафки для консьюмеров, например KAFKA_CONSUMER_BOOTSTRAPSERVERS:localhost:9092;

  • group-id - группа для консьюмеров;

  • producer - настройка адреса сервера Kafka для Поставщика данных;

  • bootstrap-servers - адрес кафки для продюсеров, например KAFKA_PRODUCER_BOOTSTRAPSERVERS:localhost:9092.

3.4. Секция logging

Секция logging предназначена для настройки параметров логирования.

Например:

logging:
  level:
    ru.itone.datamart: ${LOGGING_LEVEL_RUITONEDATAMART:debug}

3.5. Секция metrics

Секция metrics предназначена для настройки параметров метрик.

Например:

metrics:
  port: ${METRICS_PORT:9837}

Параметры настроек

  • port - порт для метрик, например METRICS_PORT:9837.