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

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}

migration:
  enabled: ${MIGRATION_ENABLE:false}
  old-connection-string: ${OLD_ZOOKEEPER_DS_ADDRESS:localhost}

backup:
  zk-path: ${COUNTER_BACKUP_ZK_PATH:/${environment.name}/counter-provider/counters}
  commandTopic: ${BACKUP_COMMAND_TOPIC:adapter.command}
  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}

metrics:
  port: ${METRICS_PORT:9837}

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

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

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

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

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

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

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

  • backup - настройки бекапирования;

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

4.1. Секция environment

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

Например:

environment:
  name: ${ENVIRONMENT_NAME:test}

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

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

4.2. Секция http-server

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

Например:

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

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

  • start-number - начальный номер счетчика, например COUNTER_START_NUMBER:1;

  • retry-after-failure- количество попыток записи счетчика после ошибки обновления, например COUNTER_RETRY_AFTER_FAILURE:3;

  • update-timeout - таймаут обновления счетчика, например COUNTER_UPDATE_TIMEOUT:;

  • reset-period - период сброса счетчика, например COUNTER_RESET_PERIOD:.

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

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

Например:

migration:
  enabled: ${MIGRATION_ENABLE:false}
  old-connection-string: ${OLD_ZOOKEEPER_DS_ADDRESS:localhost}

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

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

  • old-connection-string - адрес Zookeeper, например {OLD_ZOOKEEPER_DS_ADDRESS:localhost}.

4.6. Секция backup

В секции backup настраивается бекапирования модуля.

Например:

backup:
  zk-path: ${COUNTER_BACKUP_ZK_PATH:/${environment.name}/counter-provider/counters}
  commandTopic: ${BACKUP_COMMAND_TOPIC:adapter.command}
  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}

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

  • zk-path - путь к корневой ноде zookeeper для бэкапирования, например {COUNTER_BACKUP_ZK_PATH:/${environment.name}/counter-provider/counters};

  • commandTopic - топик команд бэкапирования, например: {BACKUP_COMMAND_TOPIC:adapter.command};

  • backupTopic - топик для отправки сохраненных данных, например: {BACKUP_TOPIC:adapter.backup};

  • statusTopic - топик для отправки статусов бэкапирования, например: {STATUS_TOPIC:adapter.status}.

4.7. Секция metrics

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

Например:

metrics:
  port: ${METRICS_PORT:9837}

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

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