.. _podd_adapter_mppr_config: Конфигурация ПОДД-адаптера - Модуль MPPR (application.yml) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Файл ``application.yml`` – основной конфигурационный файл модуля, в котором задана его логика и порядок работы модуля: получение входящих запросов, их обработка, а также настройка подключения к ядру витрины (секция: ``prostore``), настройка метрик (секция: ``metrics``), а также другие настройки необходимые для корректной работы адаптера. .. _podd_mppr_application_yml: Пример файла application.yml ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Приведем типовую структуру файла и возможные настройки **ПОДД-адаптера - Модуль MPPR**. Следует учитывать, что в конфигурационном файле следует задавать только те настройки, которые необходимы для решения текущих бизнес-задач. .. Подключаем реальный конфигурационный файл из репозитория podd-adapter- mppr .. .. literalinclude:: /modules/podd-adapter-mppr/src/main/resources/application.yml :language: yaml .. code-block:: yaml http-server: port: ${HTTP_PORT:8085} environment: name: ${ENVIRONMENT_NAME:test} executor: reader-pool-size: ${EXECUTOR_READER_POOL_SIZE:20} max-execute-time: ${EXECUTOR_MAX_EXECUTE_TIME:600} log-pool-size: ${EXECUTOR_LOG_POOL_SIZE:20} send: channel-size: ${SEND_CHANNEL_SIZE:1} timeout: ${SEND_TIMEOUT:30} delete-topic: ${SEND_DELETE_TOPIC:true} compress: ${SEND_COMPRESS:none} prostore-rest-client: host: ${PS_HOST:localhost} port: ${PS_PORT:9195} http: max-pool-size: ${PS_MAX_POOL_SIZE:8} prostore: kafka: message-limit: ${PS_MESSAGE_LIMIT:1000} zk-url: ${PS_ZK_KAFKA_URL:localhost:2181} statusEventTopic: topic: ${PS_STATUS_EVENT_TOPIC:status.event} commit-interval: ${kafka.commit-interval} property: bootstrap.servers: ${kafka.internal.bootstrap.servers} group.id: ${kafka.internal.topic.prefix}podd-adapter-mppr-status-event auto.offset.reset: earliest enable.auto.commit: false kafka: agent.topic.prefix: ${AGENT_TOPIC_PREFIX:} max-concurrent-handle: ${KAFKA_MAX_CONCURRENT_HANDLE:10} 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: query-request: topic: ${kafka.internal.topic.prefix}mppr.delegate.rq max-concurrent-handle: ${kafka.max-concurrent-handle} commit-interval: ${kafka.commit-interval} property: bootstrap.servers: ${kafka.internal.bootstrap.servers} group.id: ${kafka.internal.topic.prefix}mppr.query.consumer auto.offset.reset: earliest enable.auto.commit: false max.poll.records: 1 max.poll.interval.ms: 600000 delta-request: topic: ${kafka.internal.topic.prefix}mppr.delta.rq max-concurrent-handle: ${kafka.max-concurrent-handle} commit-interval: ${kafka.commit-interval} property: bootstrap.servers: ${kafka.internal.bootstrap.servers} group.id: ${kafka.internal.topic.prefix}mppr.delta.consumer auto.offset.reset: earliest enable.auto.commit: false max.poll.records: 1 max.poll.interval.ms: 600000 download-data: property: bootstrap.servers: ${kafka.internal.bootstrap.servers} group.id: ${kafka.internal.topic.prefix}mppr.x.query.consumer auto.offset.reset: earliest enable.auto.commit: false max.poll.records: 1 producer: query-result: ${kafka.external.topic.prefix}query.rs query-error: ${kafka.external.topic.prefix}query.err delta-result: ${kafka.external.topic.prefix}delta.rs delta-error: ${kafka.external.topic.prefix}delta.err property: bootstrap.servers: ${kafka.external.bootstrap.servers} internal: tp-delete-tmp: ${kafka.internal.topic.prefix}tp.delete.tmp property: bootstrap.servers: ${kafka.internal.bootstrap.servers} metrics: port: ${METRICS_PORT:9843} logging: scl.delta: enabled: ${SCL_DELTA_ENABLED:false} request-response: delta-request: ${DELTA_REQUEST_LOG_ENABLED:false} delta-response: ${DELTA_RESPONSE_LOG_ENABLED:false} query-request: ${QUERY_REQUEST_LOG_ENABLED:false} query-response: ${QUERY_RESPONSE_LOG_ENABLED:false} Параметры конфигурации ^^^^^^^^^^^^^^^^^^^^^^ Настройка конфигурации **ПОДД-адаптера - Модуль MPPR** осуществляется путем редактирования параметров настроек в файле ``application.yml``. :ref:`podd_mppr_application_yml` для **ПОДД-адаптера - Модуль MPPR** можно найти в разделе "2.2. Настройка на состав программных средств" Руководства администратора. В файле конфигурации **ПОДД-адаптера - Модуль MPPR** могут быть настроены следующие секции: - ``http-server`` - указывается порт веб-сервера; - ``environment`` - название окружения (``test``, ``prod`` и т.д.); - ``executor`` - предназначена для указания размера пула для запросов; - ``send`` - настраиваются ограничения на размер загружаемого файла; - ``prostore-rest-client`` - блок параметров конфигурирования взаимодействия с :term:`ProStore`. Если false - будет использоваться JDBC-драйвер; - ``prostore`` - настройка подключения к серверу и базе данных :term:`ProStore`; - ``kafka`` - настройки параметров подключения к шине данных Apache Kafka; - ``metrics`` - настройка получения метрик; - ``logging`` - настройки журналирования запросов и ответов; Секция http-server ################## В секции ``http-server`` указывается порт веб-сервера. Например: .. code-block:: yaml http-server: port: ${HTTP_PORT:8085} **Параметры настроек** - ``port`` - порт веб-сервера, например: ``HTTP_PORT:8085``. Секция environment ################## В секции ``environment`` указывается среда разработки (dev, test, stable, prod) Например: .. code-block:: yaml environment: name: ${ENVIRONMENT_NAME:test} **Параметры настроек** - ``name`` - Название окружения, например ``ENVIRONMENT_NAME:test``. Секция executor ############### Секция ``executor`` предназначена для указания размера пула для чтения Kafka и времени выполнения задач. Например: .. code-block:: yaml executor: reader-pool-size: ${EXECUTOR_READER_POOL_SIZE:20} max-execute-time: ${EXECUTOR_MAX_EXECUTE_TIME:600} log-pool-size: ${EXECUTOR_LOG_POOL_SIZE:20} **Параметры настроек** - ``reader-pool-size`` - размер пула для чтения Kafka, например ``EXECUTOR_READER_POOL_SIZE:20``; - ``max-execute-time`` - максимальное время выполнения задачи (сек), например ``EXECUTOR_MAX_EXECUTE_TIME:600``; - ``log-pool-size`` - размер пула используемого для журналирования запросов и ответов, например ``EXECUTOR_LOG_POOL_SIZE:20``. Секция send ########### В секции ``send`` настраиваются ограничения на размер загружаемого файла. Например: .. code-block:: yaml send: channel-size: ${SEND_CHANNEL_SIZE:1} timeout: ${SEND_TIMEOUT:30} delete-topic: ${SEND_DELETE_TOPIC:true} compress: ${SEND_COMPRESS:none} **Параметры настроек** - ``channel-size`` - размер канала на отправку сообщения, например ``SEND_CHANNEL_SIZE:10``; - ``timeout`` - таймаут вычитывания данных из топика (сек), например ``SEND_TIMEOUT:30`` - ``delete-topic`` - удаление внешнего топика после выгрузки, например ``SEND_DELETE_TOPIC:true``; - ``compress`` - сжатие выгружаемых сообщений (none или zstd), например ``SEND_COMPRESS:none``. Секция prostore-rest-client ########################### В секции ``prostore-rest-client`` реализован блок параметров конфигурирования взаимодействия с ProStore. Например: .. code-block:: yaml prostore-rest-client: # Признак использования rest-api для взаимодействия с простором. enabled: ${PS_REST_CLIENT_ENABLED:true} host: ${PS_HOST:localhost} port: ${PS_PORT:9195} http: max-pool-size: ${PS_MAX_POOL_SIZE:8} **Параметры настроек** - ``host`` - адрес Prostore, например ``PS_HOST:localhost``; - ``port`` - порт Prostore, например ``PS_PORT:9195``; - ``max-pool-size`` - максимальное число подключений к Prostore, например ``PS_MAX_POOL_SIZE:8``. Секция prostore ################### В секции ``prostore`` осуществляется настройка подключения к серверу и базе данных :term:`ProStore`. Например: .. code-block:: yaml prostore: kafka: message-limit: ${PS_MESSAGE_LIMIT:1000} zk-url: ${PS_ZK_KAFKA_URL:localhost:2181} statusEventTopic: topic: ${PS_STATUS_EVENT_TOPIC:status.event} commit-interval: ${kafka.commit-interval} property: bootstrap.servers: ${kafka.internal.bootstrap.servers} group.id: ${kafka.internal.topic.prefix}podd-adapter-mppr-status-event auto.offset.reset: earliest enable.auto.commit: false **Параметры настроек** - ``message-limit`` - лимит сообщений, например ``PS_MESSAGE_LIMIT:1000``; - ``zk-url`` - адрес сервера zookeeper для загрузки данных в Prostore, например ``PS_ZK_KAFKA_URL:localhost:2181``. Секция kafka ############# Секция ``kafka`` определяет настройки взаимодействия через :term:`ПОДД-адаптер` между Поставщиком данных (``producer``) и Получателем данных (``consumer``). В секции ``kafka`` собраны настройки параметров подключения к шине данных Apache Kafka. Например: .. code-block:: yaml kafka: agent.topic.prefix: ${AGENT_TOPIC_PREFIX:} max-concurrent-handle: ${KAFKA_MAX_CONCURRENT_HANDLE:10} 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: query-request: topic: ${kafka.internal.topic.prefix}mppr.delegate.rq max-concurrent-handle: ${kafka.max-concurrent-handle} commit-interval: ${kafka.commit-interval} property: bootstrap.servers: ${kafka.internal.bootstrap.servers} group.id: ${kafka.internal.topic.prefix}mppr.query.consumer auto.offset.reset: earliest enable.auto.commit: false max.poll.records: 1 max.poll.interval.ms: 600000 delta-request: topic: ${kafka.internal.topic.prefix}mppr.delta.rq max-concurrent-handle: ${kafka.max-concurrent-handle} commit-interval: ${kafka.commit-interval} property: bootstrap.servers: ${kafka.internal.bootstrap.servers} group.id: ${kafka.internal.topic.prefix}mppr.delta.consumer auto.offset.reset: earliest enable.auto.commit: false max.poll.records: 1 max.poll.interval.ms: 600000 download-data: property: bootstrap.servers: ${kafka.internal.bootstrap.servers} group.id: ${kafka.internal.topic.prefix}mppr.x.query.consumer auto.offset.reset: earliest enable.auto.commit: false max.poll.records: 1 producer: query-result: ${kafka.external.topic.prefix}query.rs query-error: ${kafka.external.topic.prefix}query.err delta-result: ${kafka.external.topic.prefix}delta.rs delta-error: ${kafka.external.topic.prefix}delta.err property: bootstrap.servers: ${kafka.external.bootstrap.servers} internal: tp-delete-tmp: ${kafka.internal.topic.prefix}tp.delete.tmp property: bootstrap.servers: ${kafka.internal.bootstrap.servers} **Параметры конфигурации** - ``topic`` - префикс для топиков агента ПОДД, например ``AGENT_TOPIC_PREFIX``. Секция metrics ############## Секция ``metrics`` предназначена для настройки параметров метрик: Например: .. code-block:: yaml metrics: port: ${METRICS_PORT:9843} **Параметры конфигурации** - ``port`` - Порт для метрик, например ``METRICS_PORT:9843``. Секция logging ############## Секция ``logging`` предназначена для настройки журналирования запросов и ответов Например: .. code-block:: yaml logging: scl.delta: enabled: ${SCL_DELTA_ENABLED:false} request-response: delta-request: ${DELTA_REQUEST_LOG_ENABLED:false} delta-response: ${DELTA_RESPONSE_LOG_ENABLED:false} query-request: ${QUERY_REQUEST_LOG_ENABLED:false} query-response: ${QUERY_RESPONSE_LOG_ENABLED:false} LOG_FORMAT - Логирование в формате (JSON/TEXT) - указывается в ``logback.xml``