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}.