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

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

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

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

http-server:
  port: ${SERVER_PORT:8082}

persistence-mode: ${PERSISTENCE_MODE:prostore} # prostore, zookeeper&redis

prostore-rest-client:
  persistence-datamart: ${PERSISTENCE_DATAMART:persistence}
  datasource: ${PERSISTENCE_DATASOURCE:} # по умолчанию пусто, тогда берется единственный датасорс из настроек Простора
  table-completed-inserts-datamarts: ${PERSISTENCE_COMPLETED_INSERTS_TABLE:data_uploader_completed_inserts_datamarts}
  table-deltas-open: ${PERSISTENCE_OPEN_DELTAS_TABLE:data_uploader_deltas_open}
  # Таблица активных экземляров сервиса data-uploader (используется при persistence-mode: prostore)
  table-data-uploader-health-check: ${PERSISTENCE_HEALTH_CHECK_TABLE:data_uploader_health_check}
  # Имя таблицы с задачами загрузки данных (используется при persistence-mode: prostore)
  table-validation-complete: ${PERSISTENCE_VALIDATION_COMPLETE_TABLE:validation_complete}
  # Имя таблицы хранения статусов запросов (используется при persistence-mode: prostore)
  table-requests-status: ${PERSISTENCE_STATUS_TABLE:status}
  # Имя таблицы хранения данных файлов (используется при persistence-mode: prostore)
  table-files: ${PERSISTENCE_FILES_TABLE:files}
  # Имя таблицы хранения активных экземпляров сервисов
  table-data-uploader-active: ${PERSISTENCE_ACTIVE_TABLE:data_uploader_active}
  health-check-refresh-period-sec: ${HEALTH_CHECK_REFRESH_PERIOD:120}
  health-check-wait-period-sec: ${HEALTH_CHECK_WAIT_PERIOD:300}
  host: ${PS_HOST:localhost}
  port: ${PS_PORT:9090}
  http:
    max-pool-size: ${PS_MAX_POOL_SIZE:8}



redis:
  type: ${REDIS_TYPE:STANDALONE}
  connection-string: ${REDIS_CONNECTION_STRING:redis://localhost:6379}
  password: ${REDIS_PASSWORD:eYVX7EwVmmxKPCDmwMtyKVge8oLd2t81}
  max-pool-size: ${REDIS_MAX_POOL_SIZE:6}
  max-pool-waiting: ${REDIS_MAX_POOL_WAITING:24}
  max-waiting-handlers: ${REDIS_MAX_WAITING_HANDLERS:32}
net-client-options:
   tcp-user-timeout: 30
   idle-timeout: 30

upload:
  concurrency: ${UPLOAD_CONCURRENCY:100} # Общее количество параллельных задач загрузки
  send-concurrency: ${UPLOAD_SEND_CONCURRENCY:10} # Количество параллельных отправок данных в кафку для каждого файла
  poll-interval: ${UPLOAD_POLL_INTERVAL:500ms} # Интервал опроса очереди сообщений на загрузку
  mode: ${UPLOAD_MODE:mppw} # mppw|llw
  llw-batch: ${UPLOAD_LLW_BATCH:1000} # Число записей в одной команде upsert/delete. Используется только при mode=llw
  creating-delta-on-upload-request: ${DELTA_CREATING_MODE:enable} # enable|disable|period Используется только при mode=llw
  period: ${CREATING_DELTA_ON_UPLOAD_REQUEST_PERIOD:300}s # Используется только при mode=llw и creating-delta-on-upload-request=period
  check-uniqueness: true # выполнять ли проверку уникальности первичных ключей
  pool:
    size: ${UPLOAD_POOL_SIZE:16}
  retry:
    attempts: 5
    delay: 1m


data-storage:
  compress: ${DATA_STORAGE_COMPRESS:zstd} # zstd/none  редактируется синхронно для модулей rest-uploader/data-uploader!!!
  type: ${DATA_STORAGE_TYPE:dir} # redis|dir|s3
  # Директория хранения файлов для типа dir
  dir: ${DATA_STORAGE_DIR:/tmp}
  s3:
    endpoint: ${S3_ENDPOINT:http://127.0.0.1:9000/}
    bucket: ${S3_BUCKET:data} # Имя бакета
    region: ${S3_REGION:}
    access-key: ${S3_USER:minioadmin} # Пользователь, под которым происходит взаимодействие с s3
    secret-key: ${S3_PASSWORD:minioadmin} # Пароль пользователя для взаимодействия с s3

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}

csv-parser:
  separator: ${CSV_PARSER_SEPARATOR:;}
  quote-char: ${CSV_PARSER_QUOTE_CHAR:"}
  escape-char: ${CSV_PARSER_ESCAPE_CHAR:'}
  # Настройка интерпретации значений как null. Допустимые значения:
  #  - EMPTY_SEPARATORS - пустое значение между двумя разделителями, например ;;
  #  - EMPTY_QUOTES - пустые кавычки, например ;"";
  #  - BOTH - оба варианта
  #  - NEITHER - никогда. Пустая строка всегда определяется как пустая строка
  field-as-null: ${CSV_PARSER_FIELD_AS_NULL:EMPTY_SEPARATORS}
  # опция позволяет парсить мультистроковые значения

active:
  timeout: ${ACTIVE_TIMEOUT:60}
  time-to-live: ${ACTIVE_TTL:180}

delta:
  timeout: ${DELTA_TIMEOUT:300}
  row-max-count: ${DELTA_MAX_ROWS:500000}
  chunk-row-max-count: ${DELTA_CHUNK_ROWS:10000}
  chunk-data-max-size: ${DELTA_CHUNK_DATA_SIZE:1048576}
  # параметр ожидания перед повторной попыткой открытия дельты в случае ошибки
  open-delay: ${DELTA_OPEN_DELAY:60}s
  # количество попыток открытия дельты в случае ошибки
  open-attempts: ${DELTA_OPEN_ATTEMPTS:5}
  # период проверки открытых дельт
  open-check: ${DELTA_OPEN_CHECK:60}s
  # количество попыток фиксации дельты в случае ошибки
  commit-attempts: ${DELTA_COMMIT_ATTEMPTS:5}
  # период ожидания перед повторной попыткой фиксации дельты
  commit-error-delay: ${DELTA_COMMIT_DELAY:1}s
  # количество попыток отката дельты в случае ошибки
  rollback-attempts: ${DELTA_COMMIT_ATTEMPTS:3}
  # период ожидания перед повторной попыткой отката дельты
  rollback-error-delay: ${DELTA_COMMIT_DELAY:5}s


response:
  time-to-live: ${RESPONSE_TTL:36000}

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


metrics:
  port: ${METRICS_PORT:9837}

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

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

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

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

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

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

  • upload - указываются настройки параллельной загрузки данных;

  • data-storage - директория хранения файлов для типа dir;

  • environment - определяет значение среды разработки;

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

  • csv-parser - настройка парсера CSV-файлов;

  • active - настройки интервалов между попытками перехода в активное состояние и времени жизни ключа флага активности;

  • delta - настройка обработок загрузок и отправок заданий на загрузку дельт;

  • response - настройка времени хранения ответов по заданию в Redis;

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

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

3.1. Секция http-server

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

Например:

server:
  port: ${SERVER_PORT:8081}

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

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

3.2. Секция persistence-mode

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

Например:

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

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

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

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

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

Например:

prostore-rest-client:
  persistence-datamart: ${PERSISTENCE_DATAMART:persistence}
  datasource: ${PERSISTENCE_DATASOURCE:} # по умолчанию пусто, тогда берется единственный датасорс из настроек Простора
  table-completed-inserts-datamarts: ${PERSISTENCE_COMPLETED_INSERTS_TABLE:data_uploader_completed_inserts_datamarts}
  table-deltas-open: ${PERSISTENCE_OPEN_DELTAS_TABLE:data_uploader_deltas_open}
  # Таблица активных экземляров сервиса data-uploader (используется при persistence-mode: prostore)
  table-data-uploader-health-check: ${PERSISTENCE_HEALTH_CHECK_TABLE:data_uploader_health_check}
  # Имя таблицы с задачами загрузки данных (используется при persistence-mode: prostore)
  table-validation-complete: ${PERSISTENCE_VALIDATION_COMPLETE_TABLE:validation_complete}
  # Имя таблицы хранения статусов запросов (используется при persistence-mode: prostore)
  table-requests-status: ${PERSISTENCE_STATUS_TABLE:status}
  # Имя таблицы хранения данных файлов (используется при persistence-mode: prostore)
  table-files: ${PERSISTENCE_FILES_TABLE:files}
  # Имя таблицы хранения активных экземпляров сервисов
  table-data-uploader-active: ${PERSISTENCE_ACTIVE_TABLE:data_uploader_active}
  health-check-refresh-period-sec: ${HEALTH_CHECK_REFRESH_PERIOD:120}
  health-check-wait-period-sec: ${HEALTH_CHECK_WAIT_PERIOD:300}
  host: ${PS_HOST:localhost}
  port: ${PS_PORT:9090}
  http:
    max-pool-size: ${PS_MAX_POOL_SIZE:8}

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

  • persistence-datamart - датамарт, где будут располагаться таблицы хранения данных, используется при persistence-mode = prostore

  • datasource - источник данных, например PERSISTENCE_DATASOURCE:, по умолчанию пусто, в этом случае берется единственный датасорс из настроек Простора;

  • table-completed-inserts-datamarts - таблица с данными по завершенным запросам добавления данных, например PERSISTENCE_COMPLETED_INSERTS_TABLE:data_uploader_completed_inserts_datamarts;

  • table-deltas-open - таблица с данными по открытым дельтам, например PERSISTENCE_OPEN_DELTAS_TABLE:data_uploader_deltas_open;

  • table-data-uploader-health-check - таблица с heath-check, например PERSISTENCE_HEALTH_CHECK_TABLE:data_uploader_health_check;

  • table-validation-complete - таблица с задачами загрузки данных, напрммер PERSISTENCE_VALIDATION_COMPLETE_TABLE:validation_complete;

  • table-requests-status - таблица хранения статусов запросов. например PERSISTENCE_STATUS_TABLE:status;

  • table-files - таблица хранения данных файлов, например PERSISTENCE_FILES_TABLE:files;

  • table-data-uploader-active - таблица хранения активных экземпляров сервисов, например PERSISTENCE_ACTIVE_TABLE:data_uploader_active;

  • health-check-refresh-period-sec: ${HEALTH_CHECK_REFRESH_PERIOD:120} - период обновления heath-check в секундах, например HEALTH_CHECK_REFRESH_PERIOD:120;

  • health-check-wait-period-sec - период ожидания heath-check в секундах, например HEALTH_CHECK_WAIT_PERIOD:300;

  • host - адрес Prostore, например PS_HOST:t5-prostore-01.ru-central1.internal;

  • port - порт Prostore, например PS_PORT:9195;

  • max-pool-size - максимальное число подключений к Prostore, например PS_MAX_POOL_SIZE:8.

3.4. Секция redis

Секция redis определяет настройки подключения к Redis.

Например:

redis:
  type: ${REDIS_TYPE:STANDALONE}
  connection-string: ${REDIS_CONNECTION_STRING:redis://localhost:6379}
  password: ${REDIS_PASSWORD:eYVX7EwVmmxKPCDmwMtyKVge8oLd2t81}
  max-pool-size: ${REDIS_MAX_POOL_SIZE:6}
  max-pool-waiting: ${REDIS_MAX_POOL_WAITING:24}
  max-waiting-handlers: ${REDIS_MAX_WAITING_HANDLERS:32}
  net-client-options:
    tcp-user-timeout: 30
    idle-timeout: 30

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

  • type - тип подключения к Redis (STANDALONE/CLUSTER), например REDIS_TYPE:STANDALONE;

  • connection-string - указывается список серверов для подключения (перечисление через запятую), например REDIS_CONNECTION_STRING:redis://localhost:6379;

  • password - пароль для подключения, например REDIS_PASSWORD:eYVX7EwVmmxKPCDmwMtyKVge8oLd2t81;

  • max-pool-size - устанавливается максимальный размер пула, например REDIS_MAX_POOL_SIZE:6;

  • max-pool-waiting - устанавливается максимальный размер пула ожидающих команд, например REDIS_MAX_POOL_WAITING:24;

  • max-waiting-handlers - устанавливается максимальный размер ожидающих обработчиков, например REDIS_MAX_WAITING_HANDLERS:32;

  • net-client-options - параметры Redis клиента:

  • tcp-user-timeout - таймаут на соединение;

  • idle-timeout - таймаут ожидания ответа от редиса.

3.5. Секция upload

Секция upload определяет настройки параллельной загрузки данных.

Например:

upload:
  concurrency: ${UPLOAD_CONCURRENCY:100} # Общее количество параллельных задач загрузки
  send-concurrency: ${UPLOAD_SEND_CONCURRENCY:10} # Количество параллельных отправок данных в кафку для каждого файла
  poll-interval: ${UPLOAD_POLL_INTERVAL:500ms} # Интервал опроса очереди сообщений на загрузку
  mode: ${UPLOAD_MODE:mppw} # mppw|llw
  llw-batch: ${UPLOAD_LLW_BATCH:1000} # Число записей в одной команде upsert/delete. Используется только при mode=llw
  creating-delta-on-upload-request: ${DELTA_CREATING_MODE:enable} # enable|disable|period Используется только при mode=llw
  period: ${CREATING_DELTA_ON_UPLOAD_REQUEST_PERIOD:300}s # Используется только при mode=llw и creating-delta-on-upload-request=period
  check-uniqueness: true # выполнять ли проверку уникальности первичных ключей
  pool:
    size: ${UPLOAD_POOL_SIZE:16}
  retry:
    attempts: 5
    delay: 1m

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

  • concurrency - общее количество параллельных задач загрузки, например 100;

  • send-concurrency - количество параллельных отправок данных в кафку для каждого файла, например 10;

  • poll-interval - интервал опроса очереди сообщений на загрузку, например 500ms;

  • mode - режим загрузки, например UPLOAD_MODE:mppw;

    возможные значения: mppw / llw;

  • llw-batch - число записей в одной команде upsert/delete, например UPLOAD_LLW_BATCH:1000, используется только при mode=llw;

  • creating-delta-on-upload-request - создание дельты при запросе загрузки, например DELTA_CREATING_MODE:enable, используется только при mode=llw;

    возможные значения: enable/ disable / period;

  • period - период создания дельты при запросе загрузки (в секундах), например CREATING_DELTA_ON_UPLOAD_REQUEST_PERIOD:300, используется только при mode=llw и creating-delta-on-upload-request=period;

  • check-uniqueness - флаг выполнения проверки уникальности первичных ключей;

  • pool/size - размер пула загрузки, например UPLOAD_POOL_SIZE:16;

  • retry - повтор попытки загрузки;

  • attempts - количество попыток;

  • delay - период задержки (в минутах).

3.6. Секция data-storage

В секции data-storage указывается директория хранения файлов для типа dir.

Например:

data-storage:
  compress: ${DATA_STORAGE_COMPRESS:zstd} # zstd/none  редактируется синхронно для модулей rest-uploader/data-uploader!!!
  type: ${DATA_STORAGE_TYPE:dir} # redis|dir|s3
  # Директория хранения файлов для типа dir
  dir: ${DATA_STORAGE_DIR:/tmp}
  s3:
    endpoint: ${S3_ENDPOINT:http://127.0.0.1:9000/}
    bucket: ${S3_BUCKET:data} # Имя бакета
    region: ${S3_REGION:}
    access-key: ${S3_USER:minioadmin} # Пользователь, под которым происходит взаимодействие с s3
    secret-key: ${S3_PASSWORD:minioadmin} # Пароль пользователя для взаимодействия с s3

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

  • compress - настройки сжатия директории хранения файлов, например DATA_STORAGE_COMPRESS:zstd.

Внимание

блок compress редактируется синхронно для модулей rest-uploader/data-uploader

  • type - тип файлов, например DATA_STORAGE_TYPE:dir;

    возможные значения: redis / dir / s3;

  • dir - директория хранения файлов для типа dir, например DATA_STORAGE_DIR:/tmp;

  • s3 - настройки облачного хранилища S3;

  • endpoint - адрес конечной точки, например S3_ENDPOINT:http://127.0.0.1:9000/;

  • bucket - имя бакета, например S3_BUCKET:data

  • region - регион хранилища;

  • access-key - пользователь, под которым происходит взаимодействие с s3, например S3_USER:minioadmin;

  • secret-key- пароль пользователя для взаимодействия с s3, например S3_PASSWORD:minioadmin.

3.7. Секция environment

В секции environment выбирается среда разработки (например, значение test, prod и т.д).

Например:

environment:
        name: ${ENVIRONMENT_NAME:test}

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

  • name - название окружения, например ENVIRONMENT_NAME:test.

3.8. Секция zookeeper

В секции zookeeper настраиваются параметры подключения к Zookeeper.

Например:

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.

3.9. Секция csv-parser

Внимание

При загрузке файлов с форматно-логическим контролем, важно, чтобы настройки секции csv-parser были одинаковы в модулях CSV-Uploader(если используется его UI),REST-Uploader и DATA-Uploader.

Секция csv-parser - настройка парсинга CSV.

Например:

csv-parser:
  separator: ${CSV_PARSER_SEPARATOR:;}
  quote-char: ${CSV_PARSER_QUOTE_CHAR:"}
  escape-char: ${CSV_PARSER_ESCAPE_CHAR:'}
  field-as-null: ${CSV_PARSER_FIELD_AS_NULL:EMPTY_SEPARATORS}
  multiline-limit: 0

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

  • separator - Символ разделителя значений, например CSV_PARSER_SEPARATOR:;;

  • quote-char - символ кавычки, например CSV_PARSER_QUOTE_CHAR:";

  • escape-char - Символ экранирования значений, например CSV_PARSER_ESCAPE_CHAR:';

    Настройка интерпретации значений как null. Допустимые значения:

    • EMPTY_SEPARATORS - пустое значение между двумя разделителями, например ;;

    • EMPTY_QUOTES - пустые кавычки, например ;»»;

    • BOTH - оба варианта

    • NEITHER - никогда. Пустая строка всегда определяется как пустая строка

  • field-as-null - способ определения null поля, например CSV_PARSER_FIELD_AS_NULL:EMPTY_SEPARATORS.

  • multiline-limit - параметры парсинга мультистроковых значений.

Внимание

Парсер может зависать если в данных встречаются вложенные неэкранированные кавычки..

3.9.1. Дополнительное описание параметров

  1. Параметр CSV_PARSER_ESCAPE_CHAR работает следующим образом: если символ экранирования и символ кавычки равны ", то будет использован RFC4180Parser, который считывает все символы между двумя двойными кавычками, при этом двойная кавычка в тексте поля должна быть экранирована двойной кавычкой (Например "поле, ""содержащее двойную кавычку""" будет считано как поле, "содержащее двойную кавычку"). В противном случае будет использован CSVParser, использующий символ экранирования для обозначения «непечатаемых символов».

  2. Параметр CSV_PARSER_FIELD_AS_NULL может принимать следующие значения:

    • EMPTY_SEPARATORS - два разделителя полей (см. csv-parser/separator) подряд считаются null. Например: строка [aaa,,ccc] содержит значения [«aaa», null, «bbb»], а строка [aaa,»»,ccc] содержит значения [«aaa», «», «bbb»].

    • EMPTY_QUOTES - два «ограничителя строки» (см. csv-parser/escape-char) подряд считаются null. Например: строка [aaa,»»,ccc] содержит значения [«aaa», null, «bbb»], а строка [aaa,,ccc] содержит значения [«aaa», «», «bbb»].

    • BOTH - оба варианта (см. EMPTY_SEPARATORS и EMPTY_QUOTES) считаются null. Например: обе строки [aaa,»»,ccc] и [aaa,,bbb] содержат одинаковое значение [«aaa», null, «bbb»].

    • NEITHER - ни один из вариантов (см. EMPTY_SEPARATORS и EMPTY_QUOTES) не считается null. Например: обе строки [aaa,»»,ccc] и [aaa,,bbb] содержат одинаковое значение [«aaa», «», «bbb»].

3.10. Секция active

В секции active настраиваются интервалы между попытками перехода в активное состояние и времени жизни ключа флага активности.

Например:

active:
    timeout: ${ACTIVE_TIMEOUT:60}
    time-to-live: ${ACTIVE_TTL:180}

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

  • timeout - интервал между попытками перехода в активное состояние;

  • time-to-live - время жизни ключа флага активности.

3.11. Секция delta

Секция delta предназначена для указания настройки обработок загрузок и отправок заданий на загрузку дельт.

Например:

delta:
  timeout: ${DELTA_TIMEOUT:300}
  row-max-count: ${DELTA_MAX_ROWS:500000}
  chunk-row-max-count: ${DELTA_CHUNK_ROWS:10000}
  chunk-data-max-size: ${DELTA_CHUNK_DATA_SIZE:1048576}
  # параметр ожидания перед повторной попыткой открытия дельты в случае ошибки
  open-delay: ${DELTA_OPEN_DELAY:60}s
  # количество попыток открытия дельты в случае ошибки
  open-attempts: ${DELTA_OPEN_ATTEMPTS:5}
  # период проверки открытых дельт
  open-check: ${DELTA_OPEN_CHECK:60}s
  # количество попыток фиксации дельты в случае ошибки
  commit-attempts: ${DELTA_COMMIT_ATTEMPTS:5}
  # период ожидания перед повторной попыткой фиксации дельты
  commit-error-delay: ${DELTA_COMMIT_DELAY:1}s
  # количество попыток отката дельты в случае ошибки
  rollback-attempts: ${DELTA_COMMIT_ATTEMPTS:3}
  # период ожидания перед повторной попыткой отката дельты
  rollback-error-delay: ${DELTA_COMMIT_DELAY:5}s

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

  • timeout - максимальный интервал времени между первой считанной записью цикла загрузки и отправкой заданий на загрузку дельт, например DELTA_TIMEOUT:300;

  • row-max-count - максимальное количество обработанных записей для старта отправки заданий на загрузку дельт, например DELTA_CHUNK_ROWS:10000;

  • chunk-row-max-count - количество сообщений в одном чанке, например DELTA_CHUNK_ROWS:10000;

  • chunk-data-max-size - максимальный размер чанка, например DELTA_CHUNK_DATA_SIZE:1048576;

  • open-delay - параметр ожидания (в секундах) перед повторной попыткой открытия дельты в случае ошибки, например DELTA_OPEN_DELAY:60;

  • open-attempts - количество попыток открытия дельты в случае ошибки, например DELTA_OPEN_ATTEMPTS:5;

  • open-check - период проверки открытых дельт (в секундах), например DELTA_OPEN_CHECK:60;

  • commit-attempts - количество попыток фиксации дельты в случае ошибки, например DELTA_COMMIT_ATTEMPTS:5;

  • commit-error-delay - период ожидания перед повторной попыткой фиксации дельты (в секундах), например DELTA_COMMIT_DELAY:1;

  • rollback-attempts - количество попыток отката дельты в случае ошибки, например DELTA_COMMIT_ATTEMPTS:3;

  • rollback-error-delay - период ожидания перед повторной попыткой отката дельты (в секундах), например DELTA_COMMIT_DELAY:5.

3.12. Секция response

Секция response определяет настройка времени хранения ответов по заданию в Redis.

Например:

response:
    time-to-live: ${RESPONSE_TTL:36000}

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

  • time-to-live - Сколько времени Redis будет хранить ответ по заданию (ключ status.<uuid>).

3.13. Секция component-info

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

Например:

component-info:
  enabled: true
  datasource: ''
  datamart: component_info
  table-name: component_info
  create-table-period: 60s
  publish-period: 60s
  timeout-active: 300s
  secrets:
    - keys

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

  • enabled - статус подключения компонента, указывается булево значение;

  • datasource - датасорс Prostore;

  • datamart - схема Prostore;

  • table-name - имя таблицы для записи информации о компоненте;

  • create-table-period - период попыток создания схемы, при неуспехе, указывается в секундах;

  • publish-period - период публикации health-check, указывается в секундах;

  • timeout-active - период после которого компонент считается неактивным при отсутствии health-check, указывается в секундах;

  • secrets - список элементов конфига маскируемых при отправке, если указан узловой элемент, то маскируются все вложенные в него элементы.

3.14. Секция metrics

Секция metrics предназначена для настройки параметров метрик.

Например:

metrics:
  port: ${METRICS_PORT:9837}

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

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