2. Конфигурация модуля REST-Uploader (application.yml)
Файл application.yml – основной конфигурационный файл модуля, в котором задана его логика и порядок работы модуля:
асинхронная загрузка данных из источников, настройка подключения к ядру витрины (секция: prostore), а также другие
настройки необходимые для корректной работы модуля.
2.1. Пример файла application.yml
В конфигурационном файле следует задавать только те настройки, которые необходимы для решения текущих бизнес-задач.
http-server:
port: ${SERVER_PORT:8081}
executor:
reader-pool-size: ${EXECUTOR_READER_POOL_SIZE:20}
file-size:
restriction: ${SEND_FILE_SIZE_RESTRICTION:512}
environment:
# Название окружения
name: ${ENVIRONMENT_NAME:test}
data-storage:
compress: ${DATA_STORAGE_COMPRESS:zstd} # zstd/none редактируется синхронно для модулей rest-uploader/data-uploader!!!
compression-ratio: ${DATA_STORAGE_COMPRESSION_RATIO:4} # допустимый диапазон [-7;22] где -7 самый быстрый, а 22 наибольшее сжатие
type: ${DATA_STORAGE_TYPE:dir} # redis|dir|s3|prostore
# Директория хранения файлов для типа dir
dir: ${DATA_STORAGE_DIR:/upload/data}
s3:
endpoint: ${S3_ENDPOINT:http://127.0.0.1:9000/}
region: ${S3_REGION:}
bucket: ${S3_BUCKET:data} # Имя бакета
access-key: ${S3_USER:minioadmin} # Пользователь, под которым происходит взаимодействие с s3
secret-key: ${S3_PASSWORD:minioadmin} # Пароль пользователя для взаимодействия с s3
conditions:
# включение ФЛК и поведение при обнаружении ошибок
mode: warning
# период хранения журналов ошибок
save-time: 1d
# путь хранения журналов ошибок на общем диске:
save-path: /tmp/rest-uploader/reports
# путь к хранению правил в Zookeeper
zookeeper-path: rest-uploader/conditions
# Таймаут обработки запроса. 0 - таймаут отключен
rest-timeout: ${CONDITIONS_REST_TIMEOUT:60s}
# период жизни группы
save_group_time: 1d
validation:
# таймаут выполнения асинхронной проверки
validation-timeout: 1h
# таймаут получения сообщений из redis (используется при persistence-mode: zookeeper&redis)
# значение должно быть меньше чем redis.net-client-options.tcp-user-timeout
poll-timeout: 15s
# таймаут периодического опроса prostore для получения данных из очереди (используется при persistence-mode: prostore)
poll-interval: 5s
# количество корутин асинхронной валидации
max-concurrent-handle: 1
# размер порции вычитки сообщений из redis
batch-size: 1
# признак выполнения проверки кодировки
charset-check-enabled: true
# допустимые кодировки для механизма автоопределения
valid-charsets: [ UTF-8, US-ASCII, TIS-620]
health-check:
# период жизни флага активности
timeout-active: 3m
# период обновления статуса
publish-period: 30s
zookeeper:
connection-string: ${ZOOKEEPER_DS_ADDRESS:localhost}
connection-timeout-ms: ${ZOOKEEPER_DS_CONNECTION_TIMEOUT_MS:30000}
session-timeout-ms: ${ZOOKEEPER_DS_SESSION_TIMEOUT_MS:40000}
chroot: ${ZOOKEEPER_DS_CHROOT:/adapter}
retry-count: 3
retry-base-sleep-time-ms: 1_000
persistence-mode: ${PERSISTENCE_MODE:prostore} # prostore, zookeeper&redis
prostore-rest-client: # требуется синхронно менять в приложениях rest-uploader и data-uploader !!!
persistence-datamart: ${PERSISTENCE_DATAMART:persistence}
datasource: ${PERSISTENCE_DATASOURCE:} # по умолчанию пусто, тогда берется единственный датасорс из настроек Простора
table-conditions: ${PERSISTENCE_TABLE_CONDITIONS:rest_uploader_conditions}
table-ids: ${PERSISTENCE_TABLE_IDS:rest_uploader_ids}
# Таблица активных экземляров сервиса rest-uploader (используется при persistence-mode: prostore)
table-rest-uploader-health-check: ${PERSISTENCE_TABLE_HEALTH_CHECK:rest_uploader_health_check}
# Таблица групп файлов (используется при persistence-mode: prostore)
table-group-info: ${PERSISTENCE_TABLE_GROUP_INFO:group_info}
# Таблица данных о файлах в группе (используется при persistence-mode: prostore)
table-group-content: ${PERSISTENCE_TABLE_GROUP_CONTENT:group_content}
# Таблица уникальных значений полей в группе (используется при persistence-mode: prostore)
table-group-uniq: ${PERSISTENCE_TABLE_GROUP_UNIQ:group_uniq}
# Таблица очереди файлов на ФЛК (используется при persistence-mode: prostore)
table-validation-queue: ${PERSISTENCE_TABLE_VALIDATION_QUEUE:validation_queue}
# Таблица очереди файлов на загрузку (используется при persistence-mode: prostore)
table-validation-complete: ${PERSISTENCE_TABLE_VALIDATION_COMPLETE:validation_complete}
# Таблица статусов запросов (используется при persistence-mode: prostore)
table-requests-status: ${PERSISTENCE_TABLE_STATUS:status}
# Таблица с файлами (используется при persistence-mode: prostore)
table-files: ${PERSISTENCE_TABLE_FILES:files}
max-retry: 3 # количество попыток выполнить запрос, в случае переключения datasource
recovery-await-timeout: 10s # таймаут ожидания восстановления datasource
recovery-retry-delay: 1s # задержка между попытками восстановить datasource
host: ${PS_HOST:localhost}
port: ${PS_PORT:9090}
http:
max-pool-size: ${PS_MAX_POOL_SIZE:8}
migration:
enabled: ${MIGRATION_ENABLE:true}
response:
time-to-live: ${RESPONSE_TTL:10h} # Период хранения информации о статусе запроса
control:
delta:
# подключение возможности управления дельтами от клиента. Управление дельтами от клиента допускается только при настройках
# delta-> creating-delta-on-upload-request=disable у модулей data-uploader/podd-adapter-mppw
enable: ${CONTROL_DELTA_ENABLE:true}
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-duration: 30s
idle-timeout-duration: 30s
auth:
secret: ${AUTH_SECRET:gPHaT%ACXGQaQ30%1id%K7@C}
enabled: ${AUTH_ENABLED:true}
access-list-path: rest-uploader/ids
metrics:
port: ${METRICS_PORT:9837}
# Настройки парсера csv файлов
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}
# Настройки модуля сбора информации о компонентах витрины
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
# Настройки числа повторов и задержек в случае ошибок
retries:
# Задержка перед повторной попыткой повтора в случае ошибки удаления
delete-delay: 1m
# Число попыток удаления файла в случае ошибки удаления
delete-retries: 10
# Задержка перед повторной попыткой повтора в случае ошибки изменения статуса
status-change-delay: 1m
# Число попыток установить статус обработки ФЛК в случае ошибки изменения статуса
status-change-retries: 1000000
3. Параметры конфигурации
Настройка конфигурации REST-uploader осуществляется путем редактирования параметров настроек в файле
application.yml, где настраиваются секции:
http-server- указывается порт сервера;executor- настраивается размер пула для запросов;file-size- настраиваются ограничения на размер загружаемого файла;environment- настройки окружения;data-storage- директория хранения файлов для типаdir;conditions- включение форматно-логического контроля и поведение при обнаружении ошибок;zookeeper- настройки подключения к Zookeeper;persistence-mode- настройки хранения данных;prostore-api-client- блок параметров конфигурирования взаимодействия с Prostore;migration- настройки миграции;response- настройка периода хранения информации о статусе запроса;control- подключение возможности управления дельтами от клиента;redis- настройка подключения к Redis;auth- указывается секрет для валидации токенов;metrics- настройка получения метрик;csv-parser- настройка парсинга CSV;component-info- настройки модуля сбора информации о компонентах витрины.
3.1. Секция http-server
В секции http-server указывается порт веб-сервера.
Например:
http-server:
port: ${SERVER_PORT:8081}
Параметры настроек
port- порт веб-сервера, например:SERVER_PORT:8081.
3.2. Секция executor
Секция executor предназначена для указания размера пула для запросов.
Например:
executor:
reader-pool-size: ${EXECUTOR_READER_POOL_SIZE:20}
Параметры настроек
reader-pool-size- Размер пула для запросов, напримерEXECUTOR_READER_POOL_SIZE:20
3.3. Секция file-size
В секции file-size можно настраивать ограничения на размер загружаемого файла.
Например:
file-size:
restriction: ${SEND_FILE_SIZE_RESTRICTION:512}
Параметры настроек
file-size-restriction- ограничение на размер загружаемого файла, напримерSEND_FILE_SIZE_RESTRICTION:512.
3.4. Секция environment
Секция environment предназначена для настройки среды окружения.
Например:
environment:
name: ${ENVIRONMENT_NAME:test}
Параметры настроек
name- Название окружения, напримерENVIRONMENT_NAME:test.
3.5. Секция data-storage
В секции data-storage указывается директория хранения файлов для типа dir.
Например:
data-storage:
compress: ${DATA_STORAGE_COMPRESS:zstd} # zstd/none
compression-ratio: ${DATA_STORAGE_COMPRESSION_RATIO:4} # допустимый диапазон [-7;22] где -7 самый быстрый, а 22 наибольшее сжатие
type: ${DATA_STORAGE_TYPE:dir} # redis|dir|s3|prostore
# Директория хранения файлов для типа dir
dir: ${DATA_STORAGE_DIR:/upload/data}
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;type- тип файлов, напримерDATA_STORAGE_TYPE:dir(возможные значения: redis / dir / s3);dir- директория хранения файлов для типа dir, напримерDDATA_STORAGE_DIR:/upload/data;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.
Примечание
Блок compress редактируется синхронно для модулей REST-Uploader/DATA-Uploader
3.6. Секция conditions
В секции conditions - реализована возможность включения форматно-логического контроля и настройки поведения при
обнаружении ошибок.
Например:
conditions:
# включение ФЛК и поведение при обнаружении ошибок
mode: warning
# период хранения журналов ошибок
save-time: 1d
# путь хранения журналов ошибок на общем диске:
save-path: /tmp/rest-uploader/reports
# путь к хранению правил в Zookeeper
zookeeper-path: rest-uploader/conditions
# Таймаут обработки запроса. 0 - таймаут отключен
rest-timeout: ${CONDITIONS_REST_TIMEOUT:60s}
# период жизни группы
save_group_time: 1d
validation:
# таймаут выполнения асинхронной проверки
validation-timeout: 1h
# таймаут получения сообщений из redis (используется при persistence-mode: zookeeper&redis)
# значение должно быть меньше чем redis.net-client-options.tcp-user-timeout
poll-timeout: 15s
# таймаут периодического опроса prostore для получения данных из очереди (используется при persistence-mode: prostore)
poll-interval: 5s
# количество корутин асинхронной валидации
max-concurrent-handle: 1
# размер порции вычитки сообщений из redis
batch-size: 1
# признак выполнения проверки кодировки
charset-check-enabled: true
# допустимые кодировки для механизма автоопределения
valid-charsets: [ UTF-8, US-ASCII, TIS-620]
health-check:
# период жизни флага активности
timeout-active: 3m
# период обновления статуса
publish-period: 30s
Параметры настроек
mode- включение ФЛК и поведение при обнаружении ошибок, напримерwarning;save-time- период хранения журналов ошибок, например1d;save-path- путь хранения журналов ошибок на общем диске, например/tmp/rest-uploader/reports;zookeeper-path- путь к хранению правил в Zookeeper, напримерrest-uploader/conditions;rest-timeout- таймаут обработки запроса, например60s,0- таймаут отключен;save_group_time- период жизни группы, например1d;validation-timeout- таймаут выполнения асинхронной проверки, например1h;poll-timeout- таймаут получения сообщений из Redis (используется при persistence-mode: zookeeper&redis)15s, значение должно быть меньше чем redis.net-client-options.tcp-user-timeout;poll-interval- таймаут периодического опроса Prostore для получения данных из очереди (используется при persistence-mode: prostore);max-concurrent-handle- количество корутин асинхронной валидации, например1;batch-size- размер порции вычитки сообщений из rRdis, например1;charset-check-enabled- признак выполнения проверки кодировки, напримерtrue;valid-charsets- допустимые кодировки для механизма автоопределения, напримерUTF-8, US-ASCII, TIS-620;timeout-active- период жизни флага активности, например3m;publish-period- период обновления статуса, например30s;
3.6.1. Режимы настройки mode
Для настройки mode реализованы режимы:
skip_string
При необходимости пропуска строк формируется обновленный файл и сохраняется в queue с прежним ключом, после проверки всего файла;
Подтверждается чтение комплексной записи из stream
validation_queue, которая затем удаляется из стрима;Размещается запись в list с именем
validation_complete;Записывается статус 0 – Буферизирован;
В зависимости от наличия
group_idв комплексной записи:при отсутствии
group_id– завершается обработка файла;при наличии
group_id– обновляется статус в groupContent_[group_id] и выполняется проверка комплектности группы в соответствии с шагами 3-6 Журнал по группе файлов.
warning
Подтверждается чтение комплексной записи из stream
validation_queueи удаляется из стрима;Размещается запись в list с именем
validation_complete;Записывается статус 0- Буферизирован;
В зависимости от наличия
group_idв комплексной записи:при отсутствии
group_id- завершает обработку файла;при наличии
group_id- обновляет статус в groupContent_[group_id] и выполняет проверка комплектности группы в соответствии с шагами 3-6 Журнал по группе файлов.
skip_file/ skip_on_first_error
Подтверждается чтение комплексной записи из stream
validation_queue, которая затем удаляется из стрима;Удаляется файл из hset queue по ключу;
Записывается статус 7 – Ошибки ФЛК;
В зависимости от наличия
group_idв комплексной записи:при отсутствии
group_id– завершается обработка файла;при наличии
group_id– обновляется статус в groupContent_[group_id] и проверяется комплектность группы в соответствии с шагами 3-6 Журнал по группе файлов.
skip_string_except_last пропускаются строки не прошедшие ФЛК по уникальности кроме последней
При необходимости пропуска строк формируется обновленный файл и сохраняется в queue с прежним ключом, после проверки всего файла;
Подтверждается чтение комплексной записи из stream
validation_queue, которая затем удаляется из стрима;Размещается запись в list с именем
validation_complete;Записывается статус 0 – Буферизирован;
В зависимости от наличия
group_idв комплексной записи:при отсутствии
group_id– завершается обработка файла;при наличии
group_id– обновляется статус в groupContent_[group_id] и выполняется проверка комплектности группы в соответствии с шагами 3-6 Журнал по группе файлов.
3.7. Секция Zookeeper
В секции zookeeper указываются параметры настроек к Zookeeper.
Например:
zookeeper:
connect-string: ${ZOOKEEPER_DS_ADDRESS:localhost}
connection-timeout-ms: ${ZOOKEEPER_DS_CONNECTION_TIMEOUT_MS:30000}
session-timeout-ms: ${ZOOKEEPER_DS_SESSION_TIMEOUT_MS:40000}
retry-count: 3
retry-base-sleep-time-ms: 1_000
Параметры настроек
connect-string- Подключение к Zookeeper DS, напримерZOOKEEPER_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;retry-count- количество попыток подключения, например3.
3.8. Секция persistence-mode
В секции persistence-mode указывается настройка хранения данных: или в Prostore или в Zookeeper. в случае
выбора Prostore автоматически создаются необходимые таблицы.
Например:
persistence-mode: ${PERSISTENCE_MODE:prostore} # prostore | zookeeper
Параметры настроек
persistence-mode- настройка хранения данных, напримерPERSISTENCE_MODE:prostore.
3.9. Секция prostore-rest-client
В секции prostore-rest-client реализован блок параметров конфигурирования взаимодействия с Prostore.
Например:
prostore-rest-client: # требуется синхронно менять в приложениях rest-uploader и data-uploader !!!
persistence-datamart: ${PERSISTENCE_DATAMART:persistence}
datasource: ${PERSISTENCE_DATASOURCE:} # по умолчанию пусто, тогда берется единственный датасорс из настроек Простора
table-conditions: ${PERSISTENCE_TABLE_CONDITIONS:rest_uploader_conditions}
table-ids: ${PERSISTENCE_TABLE_IDS:rest_uploader_ids}
# Таблица активных экземляров сервиса rest-uploader (используется при persistence-mode: prostore)
table-rest-uploader-health-check: ${PERSISTENCE_TABLE_HEALTH_CHECK:rest_uploader_health_check}
# Таблица групп файлов (используется при persistence-mode: prostore)
table-group-info: ${PERSISTENCE_TABLE_GROUP_INFO:group_info}
# Таблица данных о файлах в группе (используется при persistence-mode: prostore)
table-group-content: ${PERSISTENCE_TABLE_GROUP_CONTENT:group_content}
# Таблица уникальных значений полей в группе (используется при persistence-mode: prostore)
table-group-uniq: ${PERSISTENCE_TABLE_GROUP_UNIQ:group_uniq}
# Таблица очереди файлов на ФЛК (используется при persistence-mode: prostore)
table-validation-queue: ${PERSISTENCE_TABLE_VALIDATION_QUEUE:validation_queue}
# Таблица очереди файлов на загрузку (используется при persistence-mode: prostore)
table-validation-complete: ${PERSISTENCE_TABLE_VALIDATION_COMPLETE:validation_complete}
# Таблица статусов запросов (используется при persistence-mode: prostore)
table-requests-status: ${PERSISTENCE_TABLE_STATUS:status}
# Таблица с файлами (используется при persistence-mode: prostore)
table-files: ${PERSISTENCE_TABLE_FILES:files}
max-retry: 3 # количество попыток выполнить запрос, в случае переключения datasource
recovery-await-timeout: 10s # таймаут ожидания восстановления datasource
recovery-retry-delay: 1s # задержка между попытками восстановить datasource
host: ${PS_HOST:localhost}
port: ${PS_PORT:9090}
http:
max-pool-size: ${PS_MAX_POOL_SIZE:8}
Параметры настроек
persistence-datamart- датамарт, где будут располагаться таблицы хранения данных, напримерPERSISTENCE_DATAMART:persistence. Используется при persistence-mode =prostore.datasource- по умолчанию пусто, в таком случае берется единственный датасорс из настроек Prostore;table-conditions- условия таблиц, напримерPERSISTENCE_TABLE_CONDITIONS:rest_uploader_conditions;table-ids- настройки идентификаторов таблиц, напримерPERSISTENCE_TABLE_IDS:rest_uploader_ids;table-rest-uploader-health-check- таблица с health-check, напримерPERSISTENCE_TABLE_HEALTH_CHECK:rest_uploader_health_check;table-group-info- таблица групп файлов, напримерPERSISTENCE_TABLE_GROUP_INFO:group_info;table-group-content- таблица данных о файлах в группе, напримерPERSISTENCE_TABLE_GROUP_CONTENT:group_content;table-group-uniq- таблица уникальных значений полей в группе, напримерPERSISTENCE_TABLE_GROUP_UNIQ:group_uniq;table-validation-queue- таблица очереди файлов на ФЛК, напримерPERSISTENCE_TABLE_VALIDATION_QUEUE:validation_queue;table-validation-complete- таблица очереди файлов на загрузку, напримерPERSISTENCE_TABLE_VALIDATION_COMPLETE:validation_complete;table-requests-status- таблица хранения статусов запросов. напримерPERSISTENCE_STATUS_TABLE:status;table-files- таблица хранения данных файлов, напримерPERSISTENCE_FILES_TABLE:files;max-retry- количество попыток выполнить запрос, в случае переключения datasource, например3;recovery-await-timeout- таймаут ожидания восстановления datasource, например10s;recovery-retry-delay- задержка между попытками восстановить datasource, например1s;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.10. Секция migration
В секции migration настраиваются миграции Zookeeper для задачи бекапирования.
Например:
migration:
enabled: ${MIGRATION_ENABLE:false}
Параметры настроек
enabled- подключение миграции, например{MIGRATION_ENABLE:false}.
3.11. Секция response
В секции response указывается период хранения информации о статусе запроса.
Например:
response:
time-to-live: ${RESPONSE_TTL:10h}
Параметры настроек
time-to-live- период хранения информации о статусе запроса, напримерESPONSE_TTL:10h.
3.12. Секция control
Секция control определяет возможности управления дельтами от клиента. Управление дельтами от клиента допускается
только при настройках delta-> creating-delta-on-upload-request=disable у модулей DATA-Uploader и podd-adapter-mppw.
Например:
control:
delta:
enable: ${CONTROL_DELTA_ENABLE:true}
Параметры настроек
enable- подключение возможности управления дельтами от клиента, напримерCONTROL_DELTA_ENABLE:true.
3.13. Секция 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-duration: 30s
idle-timeout-duration: 30s
Параметры настроек
type- тип подключения к Redis (STANDALONE/CLUSTER);connection-string- указывается список серверов для подключения (перечисление через запятую);password- пароль для подключения;max-pool-size- устанавливается максимальный размер пула;max-pool-waiting- устанавливается максимальный размер пула ожидающих команд;max-waiting-handlers- устанавливается максимальный размер ожидающих обработчиков;net-client-options- параметры Redis клиента:tcp-user-timeout-duration- таймаут на соединение;idle-timeout-duration- таймаут ожидания ответа от Redis.
3.14. Секция auth
Секция auth служит для хранения секрета валидации токена.
Например:
auth:
secret: ${AUTH_SECRET:gPHaT%ACXGQaQ30%1id%K7@C}
enabled: ${AUTH_ENABLED:true}
access-list-path: rest-uploader/ids
Параметры настроек
secret- cекрет для валидации токенов, напримерAUTH_SECRET:gPHaT%ACXGQaQ30%1id%K7@C;enabled- включение/отключение аутентификации, напримерAUTH_ENABLED:true;access-list-path- путь к списку доступов, напримерrest-uploader/ids.
3.15. Секция metrics
Секция metrics предназначена для настройки параметров метрик.
Например:
metrics:
port: ${METRICS_PORT:9837}
Параметры конфигурации
port- Порт для метрик, напримерMETRICS_PORT:9837.
3.16. Секция csv-parser
Примечание
При загрузке файлов с форматно-логическим контролем, важно, чтобы настройки секции csv-parser должны быть синхронизированы с соответствующими настройками csvparser Prostore. Так же настройки секции 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:'}
# Настройка интерпретации значений как null. Допустимые значения:
# - EMPTY_SEPARATORS - пустое значение между двумя разделителями, например ;;
# - EMPTY_QUOTES - пустые кавычки, например ;"";
# - BOTH - оба варианта
# - NEITHER - никогда. Пустая строка всегда определяется как пустая строка
field-as-null: ${CSV_PARSER_FIELD_AS_NULL:EMPTY_SEPARATORS}
Параметры конфигурации
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.16.1. Дополнительное описание параметров
Параметр
CSV_PARSER_ESCAPE_CHARработает следующим образом: если символ экранирования и символ кавычки равны", то будет использован RFC4180Parser, который считывает все символы между двумя двойными кавычками, при этом двойная кавычка в тексте поля должна быть экранирована двойной кавычкой (Например"поле, ""содержащее двойную кавычку"""будет считано какполе, "содержащее двойную кавычку"). В противном случае будет использован CSVParser, использующий символ экранирования для обозначения «непечатаемых символов».Параметр
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.17. Секция 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:
- redis.password
Параметры настроек
datasource- датасорс из настроек Prostore;datamart- схема Prostore;table-name- имя таблицы для записи информации о компоненте;create-table-period- период попыток создания схемы, в случае не успешного создания;publish-period- период публикации health-check;timeout-active- период, после которого компонент считается неактивным при отсутствии health-check;secrets- список элементов конфигурации, маскируемых при отправке, если указан узловой элемент, то маскируются все вложенные в него элементы.
3.18. Секция retries
В секции retries указываются настройки числа повторов и задержек в случае ошибок.
Например:
retries:
delete-delay: 1m
delete-retries: 10
status-change-delay: 1m
status-change-retries: 1000000
Параметры настроек
delete-delay- задержка перед повторной попыткой повтора в случае ошибки удаления;delete-retries- число попыток удаления файла в случае ошибки удаления;status-change-delay- задержка перед повторной попыткой повтора в случае ошибки изменения статуса;status-change-retries- число попыток установить статус обработки ФЛК в случае ошибки изменения статуса.