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

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

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

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

application:
  path: ${APPLICATION_PATH:/var/lib/podd-avro-defragmentator}
  source_topic: ${kafka.external.topic.prefix}query.tp.bin
  destination_topic: ${kafka.external.topic.prefix}query.tp
  source_partition_count: 1
  destination_chunk_max_size: 1000
  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:}
  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}
  producer:
    bootstrap-servers: ${kafka.external.bootstrap.servers}

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

metrics:
  port: ${METRICS_PORT:9837}

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

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

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

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

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

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

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

3.1. Секция application

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

Например:

application:
  path: ${APPLICATION_PATH:/var/lib/podd-avro-defragmentator}
  source_topic: ${kafka.external.topic.prefix}query.tp.bin
  destination_topic: ${kafka.external.topic.prefix}query.tp
  source_partition_count: 1
  destination_chunk_max_size: 1000
  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;

  • source_topic – топик Kafka query.tp.bin, являющийся источником данных;

  • destination_topic - топик Kafka query.tp, в который будут собираться данные;

  • source_partition_count - количество партиций в исходном топике source_topic;

  • destination_chunk_max_size - максимальный размер фрагмента данных chunk при записи в топик destination_topic для сбора данных;

  • 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:}
  external:
    bootstrap.servers: ${KAFKA_BOOTSTRAP_SERVERS:localhost:9092}
    topic.prefix: ${EXTERNAL_TOPIC_PREFIX:${agent.topic.prefix}}
  consumer:
    bootstrap-servers: ${kafka.external.bootstrap.servers}
    group-id: ${KAFKA_CONSUMER_GROUPID:defragmentator-consumer}
  producer:
    bootstrap-servers: ${kafka.external.bootstrap.servers}

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

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