.. _podd_adapter_group_repl_config: Конфигурация Модуля группировки чанков репликации (application.yml) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Файл ``application.yml`` – основной конфигурационный файл модуля, в котором описаны подключение к сервису **Kafka**, порт веб-сервера, и настройки журналирования запросов и ответов. .. _podd_adapter_group_repl_application_yml: Пример файла application.yml ################################# В конфигурационном файле следует задавать только те настройки, которые необходимы для решения текущих бизнес-задач. .. code-block:: yaml http-server: port: ${HTTP_PORT:8084} spring: liquibase: enabled: ${LIQUIBASE_ENABLED:true} # Для storage.type=kafka необходимо выключить change-log: classpath:/liquibase-changes/changelog.xml driver-class-name: org.postgresql.Driver url: jdbc:postgresql://${storage.postgres.connection.host}:${storage.postgres.connection.port}/${storage.postgres.connection.database}?currentSchema=${storage.postgres.connection.schema} user: ${storage.postgres.connection.user} password: ${storage.postgres.connection.password} storage: type: ${STORAGE_TYPE:postgres} # тип, postgres|kafka postgres: # параметры подключения к базе. Используется только при type=postgres connection: database: ${STORAGE_DATABASE:replication} schema: ${STORAGE_SCHEMA:public} host: ${STORAGE_HOST:localhost} port: ${STORAGE_PORT:5432} user: ${STORAGE_USER:postgres} password: ${STORAGE_PASSWORD:postgres} pool: max-size: ${STORAGE_POOL_SIZE:30} 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}} internal: bootstrap.servers: ${PS_KAFKA:localhost:9092} topic.prefix: ${INTERNAL_TOPIC_PREFIX:${kafka.agent.topic.prefix}} consumer: delta-apply-request: ${kafka.external.topic.prefix}delta.in.rq property: bootstrap.servers: ${kafka.external.bootstrap.servers} group.id: ${kafka.external.topic.prefix}podd-adapter-group-repl auto.offset.reset: earliest enable.auto.commit: false producer: refresh-interval: 60s delta-apply-notification: ${kafka.internal.topic.prefix}subscription.in property: 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:8640000} chroot: ${ZOOKEEPER_DS_CHROOT:/adapter} logging: scl.delta: enabled: ${SCL_DELTA_ENABLED:false} metrics: port: ${METRICS_PORT:9837} Параметры конфигурации ^^^^^^^^^^^^^^^^^^^^^^ Настройка конфигурации **Модуля группировки чанков репликации** осуществляется путем редактирования параметров настроек в файле ``application.yml``, где настраиваются секции: - ``http-server`` - указывается порт веб-сервера. - ``storage`` - блок настроек хранения чанков данных репликации. При изменении параметров необходимо синхронизировать аналогичные параметры в сервисе MPPW. - ``kafka`` - настройки параметров подключения к шине данных Apache Kafka. - ``logging`` - настройки журналирования запросов и ответов. - ``metrics`` - настройка порта для получения метрик. Секция http-server ################### В секции ``http-server`` указывается порт веб-сервера. Например: .. code-block:: yaml http-server: port: ${HTTP_PORT:8084} **Параметры настроек** - ``port`` - порт веб-сервера, например: ``HTTP_PORT:8084``. Секция storage ################### В секции ``storage`` указываются настройки хранения чанков данных репликации. ри изменении параметров необходимо синхронизировать аналогичные параметры в сервисе MPPW. Например: .. code-block:: yaml storage: type: ${STORAGE_TYPE:postgres} postgres: connection: database: ${STORAGE_DATABASE:replication} schema: ${STORAGE_SCHEMA:public} host: ${STORAGE_HOST:localhost} port: ${STORAGE_PORT:5432} user: ${STORAGE_USER:postgres} password: ${STORAGE_PASSWORD:postgres} pool: max-size: ${STORAGE_POOL_SIZE:30} **Параметры настроек** - ``type`` - тип, postgres|kafka, например: ``STORAGE_TYPE:postgres``; - ``connection`` - параметры подключения к базе. Секция kafka ############# Секция ``kafka`` определяет настройки взаимодействия через **СМЭВ4-адаптер** между Поставщиком данных (``producer``) и Получателем данных (``consumer``). Здесь же задаются настройки параметров подключения к шине данных **Apache Kafka**. Например: .. code-block:: yaml 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}} internal: bootstrap.servers: ${PS_KAFKA:localhost:9092} topic.prefix: ${INTERNAL_TOPIC_PREFIX:${kafka.agent.topic.prefix}} consumer: delta-apply-request: ${kafka.external.topic.prefix}delta.in.rq property: bootstrap.servers: ${kafka.external.bootstrap.servers} group.id: ${kafka.external.topic.prefix}podd-adapter-group-repl auto.offset.reset: earliest enable.auto.commit: false producer: refresh-interval: 60s delta-apply-notification: ${kafka.internal.topic.prefix}subscription.in property: bootstrap.servers: ${kafka.internal.bootstrap.servers} **Параметры конфигурации** - ``topic`` - префикс для топиков агента СМЭВ4, например ``AGENT_TOPIC_PREFIX``; - ``max-concurrent-handle`` - максимальное количество обработчиков входящих запросов, например ``KAFKA_MAX_CONCURRENT_HANDLE:100``; - ``commit-interval`` - периодичность фиксации оффсета обработанных сообщений, например ``KAFKA_COMMIT_INTERVAL:5s``. Секция environment ################## В секции ``environment`` выбирается среда разработки (например, значение ``test``, ``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:localhost} connection-timeout-ms: ${ZOOKEEPER_DS_CONNECTION_TIMEOUT_MS:30000} session-timeout-ms: ${ZOOKEEPER_DS_SESSION_TIMEOUT_MS:8640000} chroot: ${ZOOKEEPER_DS_CHROOT:/adapter} **Параметры настроек** - ``connection-string`` - Подключение к Zookeeper DS, например ``ZZOOKEEPER_DS_ADDRESS:localhost``; - ``connection-timeout-ms`` - Zookeeper DS таймаут подключения, например ``ZOOKEEPER_DS_CONNECTION_TIMEOUT_MS:30000``; - ``session-timeout-ms`` - Zookeeper DS таймаут сессии, например ``ZOOKEEPER_DS_SESSION_TIMEOUT_MS:40000``; - ``chroot`` - Zookeeper DS chroot path, например ``ZOOKEEPER_DS_CHROOT:/adapter``. Секция logging ############## Секция ``logging`` предназначена для настройки журналирования запросов и ответов. Например: .. code-block:: yaml logging: scl.delta: enabled: ${SCL_DELTA_ENABLED:false} **Параметры конфигурации** - ``enabled`` - Журналировать события SCL delta, например: ``SCL_DELTA_ENABLED:false``. LOG_FORMAT - Логирование в формате (JSON/TEXT) - указывается в ``logback.xml``. Секция metrics ################ Секция ``metrics`` предназначена для настроек порта получения метрик. Например: .. code-block:: yaml metrics: port: ${METRICS_PORT:9837} **Параметры настроек** - ``port`` - Порт для получения метрик, например ``{METRICS_PORT:9837}``.