2. Конфигурация модуля ПОДД-адаптер – Модуль группировки данных табличных параметров (application.yml)
Файл application.yml – основной конфигурационный файл модуля, в котором задана его логика и порядок работы модуля.
2.1. Пример файла application.yml
В конфигурационном файле следует задавать только те настройки, которые необходимы для решения текущих бизнес-задач.
http-server:
port: ${HTTP_PORT:8092}
kafka:
agent.topic.prefix: ${AGENT_TOPIC_PREFIX:}
# максимальное количество обработчиков входящих запросов
max-concurrent-handle: ${KAFKA_MAX_CONCURRENT_HANDLE:1000}
# периодичность фиксации оффсета обработанных сообщений
commit-interval: ${KAFKA_COMMIT_INTERVAL:5s}
external:
bootstrap.servers: ${KAFKA_BOOTSTRAP_SERVERS:localhost:9092}
topic.prefix: ${EXTERNAL_TOPIC_PREFIX:${kafka.agent.topic.prefix}}
internal:
bootstrap.servers: ${PS_KAFKA:localhost:9092}
topic.prefix: ${INTERNAL_TOPIC_PREFIX:${kafka.agent.topic.prefix}}
# параметры консьюмера сообщений
consumer:
bootstrap.servers: ${kafka.internal.bootstrap.servers}
# Смещение при первом запуске приложения
auto.offset.reset: earliest
# параметры продъюсера сообщений
producer:
bootstrap.servers: ${kafka.internal.bootstrap.servers}
# Параметры администрирования. Используется для health-check
admin:
bootstrap.servers: ${kafka.internal.bootstrap.servers}
group:
data-topic-prefix: ${DATA_TOPIC_PREFIX:tp.data}
# Время пересоздания kafka producer, в минутах
refreshPeriod: ${DATA_PRODUCER_RECREATE_PERIOD:3m}
# блок настроек группировки данных табличных параметров
query:
data-topic-prefix: ${DATA_TOPIC_PREFIX:tp.data}
# топик с данными табличных параметров
data-topic: ${kafka.external.topic.prefix:}query.tp
# топик нотификаций на загрузку табличных параметров
notification-topic: ${kafka.internal.topic.prefix:}tp.upload.query
# блок настроек отмены запросов
cancel:
# топик запросов на отмену исполнения
request-topic: ${kafka.external.topic.prefix:}cancel.rq
# настройки кеша отмененных запросов
cache:
# начальный размер кеша
initial-capacity: 10000
# время вытеснения из кеша
expire-after-access: 60m
# дополнительные параметры консьюмера запросов
consumer-properties:
bootstrap.servers: ${kafka.external.bootstrap.servers}
group.id: ${kafka.external.topic.prefix}group.tp.consumer
# дополнительные параметры продъюсера ответов
producer-properties:
bootstrap.servers: ${kafka.internal.bootstrap.servers}
delta:
table-params:
# топик с данными табличных параметров
data-topic: ${kafka.external.topic.prefix}delta.tp
# топик нотификаций на загрузку табличных параметров
notification-topic: ${kafka.internal.topic.prefix}tp.upload.delta
# топик с ошибками обработки
error-topic: ${kafka.internal.topic.prefix}tp.upload.err
# дополнительные параметры консьюмера запросов
consumer-properties:
bootstrap.servers: ${kafka.external.bootstrap.servers}
group.id: ${kafka.external.topic.prefix}delta.tp.consumer
# дополнительные параметры продъюсера ответов
producer-properties:
bootstrap.servers: ${kafka.internal.bootstrap.servers}
result:
# топик с данными
data-topic: ${kafka.external.topic.prefix}delta.in.tp
# топик нотификаций на загрузку табличных параметров
notification-topic: ${kafka.internal.topic.prefix}tp.upload.delta.in
# топик с ошибками обработки
error-topic: ${kafka.internal.topic.prefix}tp.upload.in.err
# дополнительные параметры консьюмера запросов
consumer-properties:
bootstrap.servers: ${kafka.external.bootstrap.servers}
group.id: ${kafka.external.topic.prefix}delta.in.tp.consumer
# дополнительные параметры продъюсера ответов
producer-properties:
bootstrap.servers: ${kafka.internal.bootstrap.servers}
environment:
name: ${ENVIRONMENT_NAME:test}
zookeeper:
connection-string: ${ZOOKEEPER_DS_ADDRESS:localhost}
connection-timeout-ms: ${ZOOKEEPER_DS_CONNECTION_TIMEOUT_MS:30000}
session-timeout-ms: ${ZOOKEEPER_DS_SESSION_TIMEOUT_MS:86400000}
chroot: ${ZOOKEEPER_DS_CHROOT:/adapter}
metrics:
# Порт сервера для получения метрик
port: ${METRICS_PORT:9843}
kafkaAdminClientName: kafkaAdminClient
3. Параметры конфигурации
Настройка конфигурации ПОДД-адаптера – Модуль группировки данных табличных параметров осуществляется путем редактирования параметров настроек
в файле application.yml, где настраиваются секции:
kafkaUrl– адрес сервера Kafka для Агента СМЭВ4;http-server- указывается порт веб-сервера;kafka– настройки сервера Kafka;group- настройка публикации сгруппированных чанков табличных параметров;query- блок настроек группировки данных табличных параметров;delta- указываются настройки группировки дельт;environment- название окружения (test,prodи т.д.);zookeeper- указываются настройки подключения к Zookeeper;metrics– настройка получения метрик.
3.1. Секция http-server
В секции http-server указывается порт веб-сервера.
Например:
http:
port: ${HTTP_PORT:8092}
Параметры настроек
port- порт веб-сервера, например:HTTP_PORT:8092.
3.2. Секция kafka
Секция kafka предназначена для настройки сервера Kafka.
Например:
kafka:
# максимальное количество обработчиков входящих запросов
max-concurrent-handle: ${KAFKA_MAX_CONCURRENT_HANDLE:1000}
# периодичность фиксации оффсета обработанных сообщений
commit-interval: ${KAFKA_COMMIT_INTERVAL:5s}
external:
bootstrap.servers: ${KAFKA_BOOTSTRAP_SERVERS:localhost:9092}
topic.prefix: ${EXTERNAL_TOPIC_PREFIX:${agent.topic.prefix}}
internal:
bootstrap.servers: ${PS_KAFKA:localhost:9092}
topic.prefix: ${INTERNAL_TOPIC_PREFIX:${agent.topic.prefix}}
# параметры консьюмера сообщений
consumer:
bootstrap.servers: ${kafka.internal.bootstrap.servers}
# Смещение при первом запуске приложения
auto.offset.reset: earliest
# параметры продюсера сообщений
producer:
bootstrap.servers: ${kafka.internal.bootstrap.servers}
# Параметры администрирования. Используется для health-check
admin:
bootstrap.servers: ${kafka.internal.bootstrap.servers}
Параметры настроек
max-concurrent-handle- максимальное количество обработчиков входящих запросов, например{KAFKA_MAX_CONCURRENT_HANDLE:1000};commit-interval- периодичность фиксации оффсета обработанных сообщений, например{KAFKA_COMMIT_INTERVAL:5s};eventLoopPool- размер пула event loop. напримерVERTX_POOL_EVENTLOOPPOOL:10;internal- настройка количества определяется адрес сервера Kafka и префикс топика;consumer- параметры потребителя сообщений;producer- параметры поставщика сообщений.
3.3. Секция group
Секция group отвечает за публикацию сгруппированных чанков табличных параметров.
group:
data-topic-prefix: ${DATA_TOPIC_PREFIX:tp.data}
# Время пересоздания kafka producer, в минутах
refreshPeriod: ${DATA_PRODUCER_RECREATE_PERIOD:3m}
Параметры настроек
refreshPeriod- Время пересоздания kafka producer, в минутах.
3.4. Секция query
Секция query предназначена для настроек группировки данных табличных параметров.
Например:
query:
data-topic-prefix: ${DATA_TOPIC_PREFIX:tp.data}
# топик с данными табличных параметров
data-topic: ${kafka.external.topic.prefix:}query.tp
# топик нотификаций на загрузку табличных параметров
notification-topic: ${kafka.internal.topic.prefix:}tp.upload.query
# блок настроек отмены запросов
cancel:
# топик запросов на отмену исполнения
request-topic: ${kafka.external.topic.prefix:}cancel.rq
# настройки кеша отмененных запросов
cache:
# начальный размер кеша
initial-capacity: 10000
# время вытеснения из кеша
expire-after-access: 60m
# дополнительные параметры консьюмера запросов
consumer-properties:
bootstrap.servers: ${kafka.external.bootstrap.servers}
group.id: ${kafka.external.topic.prefix}group.tp.consumer
# дополнительные параметры продъюсера ответов
producer-properties:
bootstrap.servers: ${kafka.internal.bootstrap.servers}
Параметры настроек
data-topic- топик с данными табличных параметров;notification-topic- топик нотификаций на загрузку табличных параметров;cancel- блок настроек отмены запросов;request-topic- Время пересоздания kafka producer, в минутах;cache- настройки кеша отмененных запросов;initial-capacity– начальный размер кеша;expire-after-access- время вытеснения из кеша;consumer-properties- дополнительные параметры потребителя запросов;producer-properties- дополнительные параметры поставщика ответов.
3.5. Секция delta
В секции delta указываются настройки группировки дельт.
Например:
delta:
table-params:
# топик с данными табличных параметров
data-topic: ${kafka.external.topic.prefix}delta.tp
# топик нотификаций на загрузку табличных параметров
notification-topic: ${kafka.internal.topic.prefix}tp.upload.delta
# топик с ошибками обработки
error-topic: ${kafka.internal.topic.prefix}tp.upload.err
# дополнительные параметры консьюмера запросов
consumer-properties:
bootstrap.servers: ${kafka.external.bootstrap.servers}
group.id: ${kafka.external.topic.prefix}delta.tp.consumer
# дополнительные параметры продьюсера ответов
producer-properties:
bootstrap.servers: ${kafka.internal.bootstrap.servers}
result:
# топик с данными
data-topic: ${kafka.external.topic.prefix}delta.in.tp
# топик нотификаций на загрузку табличных параметров
notification-topic: ${kafka.internal.topic.prefix}tp.upload.delta.in
# топик с ошибками обработки
error-topic: ${kafka.internal.topic.prefix}tp.upload.in.err
# дополнительные параметры консьюмера запросов
consumer-properties:
bootstrap.servers: ${kafka.external.bootstrap.servers}
group.id: ${kafka.external.topic.prefix}delta.in.tp.consumer
# дополнительные параметры продъюсера ответов
producer-properties:
bootstrap.servers: ${kafka.internal.bootstrap.servers}
Параметры настроек
data-topic- топик с данными табличных параметров;notification-topic- топик нотификаций на загрузку табличных параметров;error-topic- топик с ошибками обработки;consumer-properties- дополнительные параметры потребителя запросов;producer-properties- дополнительные параметры поставщика ответов.
3.6. Секция environment
В секции environment указывается среда разработки (dev, test, stable, prod).
Например:
environment:
name: ${ENVIRONMENT_NAME:test}
Параметры настроек
name- среда разработки, напримерENVIRONMENT_NAME:test.
3.7. Секция zookeeper
Секция zookeeper предназначена для настройки параметров подключения к серверу Zookeeper.
Например:
zookeeper:
connection-string: ${ZOOKEEPER_DS_ADDRESS:t5-adsp-01.ru-central1.internal}
connection-timeout-ms: ${ZOOKEEPER_DS_CONNECTION_TIMEOUT_MS:30000}
session-timeout-ms: ${ZOOKEEPER_DS_SESSION_TIMEOUT_MS:86400000}
chroot: ${ZOOKEEPER_DS_CHROOT:/adapter}
Параметры настроек
connection-string- подключение к Zookeeper DS, напримерZOOKEEPER_DS_ADDRESS:t5-adsp-01.ru-central1.internal;connection-timeout-ms- Zookeeper DS таймаут подключения, напримерZOOKEEPER_DS_CONNECTION_TIMEOUT_MS:30000;session-timeout-ms- Zookeeper DS таймаут сессии, напримерZOOKEEPER_DS_SESSION_TIMEOUT_MS:86400000;chroot- Zookeeper DS chroot path, напримерZOOKEEPER_DS_CHROOT:/adapter.
3.8. Секция metrics
Секция metrics предназначена для настройки параметров метрик.
Например:
metrics:
# Порт сервера для получения метрик
port: ${METRICS_PORT:9843}
kafkaAdminClientName: kafkaAdminClient
Параметры настроек
port- порт для метрик, напримерMETRICS_PORT:9843.