2. Конфигурация модуля Counter-Provider (application.yml)

Файл application.yml – основной конфигурационный файл модуля, в котором задана его логика и порядок работы сервиса:

  • среда разработки;

  • настройка счетчика;

  • настройка подключения к Zookeeper, а также другие настройки необходимые для корректной работы сервиса.

3. Пример файла application.yml

В конфигурационном файле следует задавать только те настройки, которые необходимы для решения текущих бизнес-задач.

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}

# Настройки модуля сбора информации о компонентах витрины
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}

4. Параметры конфигурации

Настройка конфигурации сервиса генерации уникального номера осуществляется путем редактирования параметров настроек в файле application.yml, где настраиваются секции:

  • environment - указывается среда разработки;

  • http-server - указывается порт веб-сервера;

  • counter - указываются настройки счетчика;

  • zookeeper - определяет настройки подключения к Zookeeper;

  • persistence-mode - настройки хранения данных;

  • prostore-rest-client - блок параметров конфигурирования взаимодействия с Prostore;

  • migration - настройки миграции;

  • component-info - настройки модуля сбора информации о компонентах витрины;

  • metrics - настройка порта для получения метрик.

4.1. Секция environment

В секции environment указывается среда разработки (dev, test, stable, prod).

Например:

environment:
  name: ${ENVIRONMENT_NAME:test}

Параметры настроек

  • name - среда разработки, например ENVIRONMENT_NAME:test.

4.2. Секция http-server

В секции http-server указывается порт веб-сервера.

Например:

http-server:
  port: ${HTTP_PORT:9000}

Параметры настроек

  • port - порт веб-сервера, например: HTTP_PORT:9000.

4.3. Секция counter

В секции counter можно настраивать начальный номер счетчика, а также количество попыток записи счетчика после ошибки обновления.

Например:

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.

4.4. Секция 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.

4.5. Секция persistence-mode

В секции persistence-mode указывается настройка хранения данных: или в Prostore, или в Zookeeper. В случае выбора Prostore автоматически создаются необходимые таблицы.

Например:

persistence-mode: ${PERSISTENCE_MODE:prostore} # prostore | zookeeper

Параметры настроек

  • persistence-mode - настройка хранения данных, например PERSISTENCE_MODE:prostore.

4.6. Секция prostore-rest-client

В секции prostore-rest-client реализован блок параметров конфигурирования взаимодействия с Prostore.

Например:

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:, по умолчанию пусто, в этом случае берется единственный датасорс из настроек Простора.

4.7. Секция migration

В секции migration настраиваются миграции Zookeeper в Prostore для задачи бекапирования.

Например:

migration:
  enabled: ${MIGRATION_ENABLE:false}

Параметры настроек

  • enabled - подключение миграции, например {MIGRATION_ENABLE:false}.

4.8. Секция component-info

В секции component-info хранятся настройки компонента сбора информации о компонентах витрины.

Например:

# Настройки модуля сбора информации о компонентах витрины
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 - список элементов конфига маскируемых при отправке, если указан узловой элемент, то маскируются все вложенные в него элементы.

4.9. Секция metrics

В секции metrics настраивается порт получения метрик.

Например:

metrics:
  port: ${METRICS_PORT:9837}

Параметры настроек

  • port - порт для получения метрик, например {METRICS_PORT:9837}.