.. _podd_adapter_group_tp_config: Конфигурация модуля **ПОДД-адаптер – Модуль группировки данных табличных параметров** (application.yml) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Файл ``application.yml`` – основной конфигурационный файл модуля, в котором задана его логика и порядок работы модуля: подключение к серверу Kafka **Агента ПОДД**, настройки vertx-библиотеки, *verticle* и *Kafka* (секция ``datamart``), настройка метрик (секция: ``metrics``) и другие настройки необходимые для корректной работы модуля. .. _podd_group_tp_application_yml: Пример файла application.yml ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Приведем типовую структуру файла и возможные настройки **ПОДД-адаптера – Модуль группировки данных табличных параметров**. Следует учитывать, что в конфигурационном файле следует задавать только те настройки, которые необходимы для решения текущих бизнес-задач. .. Подключаем реальный конфигурационный файл из репозитория podd-adapter-group-tp .. .. literalinclude:: /modules/podd-adapter-group-tp/src/main/resources/application.yml :language: yaml .. code-block:: yaml 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 Параметры конфигурации ^^^^^^^^^^^^^^^^^^^^^^ Настройка конфигурации **ПОДД-адаптера – Модуль группировки данных табличных параметров** осуществляется путем редактирования параметров настроек в файле ``application.yml``. Пример конфигурации файла ``application.yml`` для **ПОДД-адаптера – Модуль группировки данных табличных параметров** см. в разделе :ref:`podd_group_tp_application_yml` Руководства администратора. В файле конфигурации **ПОДД-адаптера – Модуль группировки данных табличных параметров** могут быть настроены следующие секции: - ``kafkaUrl`` – адрес сервера Kafka для Агента ПОДД; - ``http-server`` - указывается порт веб-сервера; - ``kafka`` – настройки сервера Kafka; - ``group`` - настройка блока работы с группировкой табличных параметров; - ``query`` - блок настроек группировки данных табличных параметров; - ``delta`` - указываются настройки группировки дельт; - ``environment`` - название окружения (``test``, ``prod`` и т.д.); - ``zookeeper`` - указываются настройки подключения к Zookeeper; - ``metrics`` – настройка получения метрик. Секция http-server ################### В секции ``http-server`` указывается порт веб-сервера. Например: .. code-block:: yaml http: port: ${HTTP_PORT:8092} **Параметры настроек** - ``port`` - порт веб-сервера, например: ``HTTP_PORT:8092``. Секция kafka ############### Секция ``kafka`` предназначена для настройки сервера Kafka. Например: .. code-block:: yaml 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`` определяются параметры параметры продюсера сообщений сообщений. Секция group ############ Секция ``group`` предназначена для настройки блока работы с группировкой табличных параметров. .. code-block:: yaml group: data-topic-prefix: ${DATA_TOPIC_PREFIX:tp.data} # Время пересоздания kafka producer, в минутах refreshPeriod: ${DATA_PRODUCER_RECREATE_PERIOD:3m} **Параметры настроек** - ``refreshPeriod`` - Время пересоздания *kafka producer*, в минутах; Секция query ############# Секция ``query`` предназначена для настроек группировки данных табличных параметров. Например: .. code-block:: yaml 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`` - дополнительные параметры продъюсера ответов. Секция group ################## В секции ``group`` указываются настройки группировки дельт. Например: .. code-block:: yaml group: data-topic-prefix: ${DATA_TOPIC_PREFIX:tp.data} refreshPeriod: ${DATA_PRODUCER_RECREATE_PERIOD:3m} **Параметры настроек** - ``refreshPeriod`` - Время пересоздания kafka producer, в минутах. Секция delta ############## В секции ``delta`` указываются настройки группировки дельт. Например: .. code-block:: yaml 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`` - дополнительные параметры продюсера ответов. Секция environment ################## В секции ``environment`` указывается среда разработки (dev, test, stable, prod) Например: .. code-block:: yaml environment: name: ${ENVIRONMENT_NAME:test} **Параметры настроек** - ``name`` - Название окружения, например ``ENVIRONMENT_NAME:test``. Секция zookeeper ################ Секция ``zookeeper`` предназначена для настройки параметров подключения к серверу Zookeeper. Например: .. code-block:: yaml 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``. Секция metrics ############## Секция ``metrics`` предназначена для настройки параметров метрик. Например: .. code-block:: yaml metrics: # Порт сервера для получения метрик port: ${METRICS_PORT:9843} kafkaAdminClientName: kafkaAdminClient **Параметры настроек** - ``port`` - порт для метрик, например ``METRICS_PORT:9843``.