2. Конфигурация модуля ПОДД-адаптер - Модуль дефрагментации чанков табличных параметров (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. Параметры конфигурации
Настройка конфигурации ПОДД-адаптера - Модуль дефрагментации чанков табличных параметров осуществляется путем редактирования параметров настроек в файле
application.yml, где настраиваются секции:
application- настройка модуля в части указания топиков взаимодействия и размера обрабатываемых данных;environment- указывается название окружения (test,prodи т.д.);kafka- настройка подключения к серверу Kafka для Поставщика и Получателя данных;logging- настройка параметров логирования модуля;metrics- настройка получения метрик.
3.1. Секция application
Секция application предназначена для настройки ПОДД-адаптера - Модуль дефрагментации чанков табличных параметров в части указания топиков
взаимодействия и размера обрабатываемых данных.
Например:
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.