.. _counter_provider_config: Конфигурация модуля Counter-Provider (application.yml) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Файл ``application.yml`` – основной конфигурационный файл модуля, в котором задана его логика и порядок работы сервиса: - среда разработки; - настройка счетчика; - настройка подключения к Zookeeper, а также другие настройки необходимые для корректной работы сервиса. .. _counter_provider_application_yml: Пример файла application.yml ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ В конфигурационном файле следует задавать только те настройки, которые необходимы для решения текущих бизнес-задач. .. code-block:: yaml environment: name: ${ENVIRONMENT_NAME:test} http-server: port: ${HTTP_PORT:9000} counter: start-number: ${COUNTER_START_NUMBER:1} retry-after-failure: ${COUNTER_RETRY_AFTER_FAILURE:3} update-timeout: ${COUNTER_UPDATE_TIMEOUT:} reset-period: ${COUNTER_RESET_PERIOD:} increment-gap: ${INCREMENT_GAP:1} 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} persistence-mode: ${PERSISTENCE_MODE:prostore} # prostore | zookeeper prostore-rest-client: host: ${PS_HOST:localhost} port: ${PS_PORT:9195} http: max-pool-size: ${PS_MAX_POOL_SIZE:5} persistence-datamart: ${PERSISTENCE_DATAMART:persistence} datasource: ${PERSISTENCE_DATASOURCE:} # по умолчанию пусто, тогда берется единственный датасорс из настроек Простора counter-prefix: ${COUNTER_PREFIX:counter_} migration: enabled: ${MIGRATION_ENABLE:false} backup: mode: ${BACKUP_MODE:rest} # kafka | rest rest: uri: ${BACKUP_URI:/backup} backupTopic: ${BACKUP_TOPIC:adapter.backup} statusTopic: ${STATUS_TOPIC:adapter.status} kafka: consumer: property: bootstrap.servers: ${KAFKA_BOOTSTRAP_SERVERS:localhost:9092} group.id: ${COUNTER_BACKUP_GROUP_ID:counter_provider_adapter_command} auto.offset.reset: latest producer: property: bootstrap.servers: ${KAFKA_BOOTSTRAP_SERVERS:localhost:9092} # Настройки модуля сбора информации о компонентах витрины component-info: enabled: true # DataSource Prostore datasource: '' # Схема Prostore datamart: component_info # Имя таблицы для записи информации о компоненте table-name: component_info # Период попыток создания схемы, при неуспехе create-table-period: 60s # Период публикации health-check publish-period: 60s # Период после которого компонент считается неактивным при отсутствии health-check timeout-active: 300s # Список элементов конфига маскируемых при отправке, # если указан узловой элемент, то маскируются все вложенные в него элементы secrets: - keys metrics: port: ${METRICS_PORT:9837} Параметры конфигурации ^^^^^^^^^^^^^^^^^^^^^^ Настройка конфигурации сервиса генерации уникального номера осуществляется путем редактирования параметров настроек в файле ``application.yml``, где настраиваются секции: - ``environment`` - указывается среда разработки; - ``http-server`` - указывается порт веб-сервера; - ``counter`` - указываются настройки счетчика; - ``zookeeper`` - определяет настройки подключения к Zookeeper; - ``persistence-mode`` - настройки хранения данных; - ``prostore-rest-client`` - блок параметров конфигурирования взаимодействия с Prostore; - ``migration`` - настройки миграции; - ``backup`` - настройки бекапирования; - ``component-info`` - настройки модуля сбора информации о компонентах витрины; - ``metrics`` - настройка порта для получения метрик. Секция environment ################## В секции ``environment`` указывается среда разработки (dev, test, stable, prod). Например: .. code-block:: yaml environment: name: ${ENVIRONMENT_NAME:test} **Параметры настроек** - ``name`` - среда разработки, например ``ENVIRONMENT_NAME:test``. Секция http-server ################### В секции ``http`` указывается порт веб-сервера. Например: .. code-block:: yaml http-server: port: ${HTTP_PORT:9000} **Параметры настроек** - ``port`` - порт веб-сервера, например: ``HTTP_PORT:9000``. Секция counter ############## В секции ``counter`` можно настраивать начальный номер счетчика, а также количество попыток записи счетчика после ошибки обновления. Например: .. code-block:: yaml counter: start-number: ${COUNTER_START_NUMBER:1} retry-after-failure: ${COUNTER_RETRY_AFTER_FAILURE:3} update-timeout: ${COUNTER_UPDATE_TIMEOUT:} reset-period: ${COUNTER_RESET_PERIOD:} increment-gap: ${INCREMENT_GAP:1} **Параметры настроек** - ``start-number`` - начальный номер счетчика, например ``COUNTER_START_NUMBER:1``; - ``retry-after-failure``- количество попыток записи счетчика после ошибки обновления, например ``COUNTER_RETRY_AFTER_FAILURE:3``; - ``update-timeout`` - таймаут обновления счетчика, например ``COUNTER_UPDATE_TIMEOUT:``; - ``reset-period`` - период сброса счетчика, например ``COUNTER_RESET_PERIOD:``; - ``increment-gap`` - шаг инкремента, например ``INCREMENT_GAP:1``. Секция 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``. Секция persistence-mode ############################ В секции ``persistence-mode`` указывается настройка хранения данных: или в Prostore, или в Zookeeper. В случае выбора Prostore автоматически создаются необходимые таблицы. Например: .. code-block:: yaml persistence-mode: ${PERSISTENCE_MODE:prostore} # prostore | zookeeper **Параметры настроек** - ``persistence-mode`` - настройка хранения данных, например ``PERSISTENCE_MODE:prostore``. Секция prostore-rest-client ############################ В секции ``prostore-rest-client`` реализован блок параметров конфигурирования взаимодействия с Prostore. Например: .. code-block:: yaml prostore-rest-client: host: ${PS_HOST:localhost} port: ${PS_PORT:9195} http: max-pool-size: ${PS_MAX_POOL_SIZE:5} persistence-datamart: ${PERSISTENCE_DATAMART:persistence} datasource: ${PERSISTENCE_DATASOURCE:} counter-prefix: ${COUNTER_PREFIX:counter_} **Параметры настроек** - ``host`` - адрес Prostore, например ``PS_HOST:localhost``; - ``port`` - порт Prostore, например ``PS_PORT:9195``; - ``max-pool-size`` - максимальное число подключений к Prostore, например ``PS_MAX_POOL_SIZE:8``; - ``persistence-datamart`` - настройка хранения данных, например ``{PERSISTENCE_DATAMART:persistence}``; - ``datasource`` - источник данных, например ``PERSISTENCE_DATASOURCE:``, по умолчанию пусто, в этом случае берется единственный датасорс из настроек Простора. Секция migration ################ В секции ``migration`` настраиваются миграции Zookeeper для задачи бекапирования. Например: .. code-block:: yaml migration: enabled: ${MIGRATION_ENABLE:false} **Параметры настроек** - ``enabled`` - подключение миграции, например ``{MIGRATION_ENABLE:false}``. Секция backup ############## В секции ``backup`` настраивается бекапирования модуля. Например: .. code-block:: yaml backup: mode: ${BACKUP_MODE:rest} # kafka | rest rest: uri: ${BACKUP_URI:/backup} backupTopic: ${BACKUP_TOPIC:adapter.backup} statusTopic: ${STATUS_TOPIC:adapter.status} kafka: consumer: property: bootstrap.servers: ${KAFKA_BOOTSTRAP_SERVERS:localhost:9092} group.id: ${COUNTER_BACKUP_GROUP_ID:counter_provider_adapter_command} auto.offset.reset: latest producer: property: bootstrap.servers: ${KAFKA_BOOTSTRAP_SERVERS:localhost:9092} **Параметры настроек** - ``mode`` - режим бекапирования, например ``BACKUP_MODE:rest``; - ``uri`` - путь к файлу бекапирования в случае выбора REST-сервисов для режима бэкапирования; - ``backupTopic`` - топик для отправки сохраненных данных, например: ``{BACKUP_TOPIC:adapter.backup}``; - ``statusTopic`` - топик для отправки статусов бэкапирования, например: ``{STATUS_TOPIC:adapter.status}``. Секция component-info ######################### В секции ``component-info`` хранятся настройки компонента сбора информации о компонентах витрины. Например: .. code-block:: yaml # Настройки модуля сбора информации о компонентах витрины component-info: enabled: true # DataSource Prostore datasource: '' # Схема Prostore datamart: component_info # Имя таблицы для записи информации о компоненте table-name: component_info # Период попыток создания схемы, при неуспехе create-table-period: 60s # Период публикации health-check publish-period: 60s # Период после которого компонент считается неактивным при отсутствии health-check timeout-active: 300s # Список элементов конфига маскируемых при отправке, # если указан узловой элемент, то маскируются все вложенные в него элементы secrets: - keys **Параметры настроек** - ``enabled`` - статус подключения компонента, указывается булево значение; - ``datasource`` - датасорс Prostore; - ``datamart`` - схема Prostore; - ``table-name`` - имя таблицы для записи информации о компоненте; - ``create-table-period`` - период попыток создания схемы, при неуспехе, указывается в секундах; - ``publish-period`` - период публикации health-check, указывается в секундах; - ``timeout-active`` - период после которого компонент считается неактивным при отсутствии health-check, указывается в секундах; - ``secrets`` - список элементов конфига маскируемых при отправке, если указан узловой элемент, то маскируются все вложенные в него элементы. Секция metrics ################ В секции ``metrics`` настраивается порт получения метрик. Например: .. code-block:: yaml metrics: port: ${METRICS_PORT:9837} **Параметры настроек** - ``port`` - порт для получения метрик, например ``{METRICS_PORT:9837}``.