2. Настройка программы
2.1. Настройка на состав технических средств
Сервер, на которым будет установлена программа, должен соответствовать техническим характеристикам, указанным в документе «Техническим описание системы».
2.2. Настройка на состав программных средств
Все предварительные действия необходимые перед установкой программы, процесс установки и проверка корректной установки программы описан в документе «Руководство по установке».
2.2.1. Настройка ProStore
Настройка ProStore заключается в настройке составляющих его компонентов и осуществляется путём внесения изменений в описание файла application.yml – основной конфигурационный файл, в котором задана логика и порядок работы Сервиса исполнения запросов (query-execution). Программная конфигурация, в частности, включает сетевые адреса, сетевые порты и идентификаторы компонентов для взаимосвязи между ними, пути на дисковых пространствах для обработки пользовательских и служебных данных, а также метаданных.
Внимание
Не рекомендуется менять настройки при первоначальной установке программы с помощью Ansible. Все необходимые настройки для корректной работы будут сконфигурированы автоматически.
2.2.1.1. Настройка Сервиса исполнения запросов (query-execution)
Файл application.yml – основной конфигурационный файл, в котором задана логика и порядок работы Сервиса исполнения запросов (query-execution). Для первоначальной установки используйте значения «по умолчанию».
Пример полного yml-файла со всеми конфигурируемыми атрибутами, приведен в Приложении 1 (см. Приложение 1 ).
Настройка ProStore:
DTM_CORE_PLUGINS_ANALYTICAL- настройка профилей приоритетности СУБД для запросов аналитики;DTM_CORE_PLUGINS_DICTIONARY- настройка профилей приоритетности СУБД для запросов ключ-значение;DTM_CORE_PLUGINS_UNDEFINED- настройка профилей приоритетности СУБД для не указанной категории запросов;DTM_CORE_HTTP_PORT- номер порта, на который Сервис исполнения запросов ожидает входящие запросы от JDBC-драйвера;DTM_NAME- имя среды для формирования полного наименования датамартов;CORE_TIME_ZONE- настройки временной зоны;DTM_CORE_METRICS_ENABLED- настройки генерации метрики Сервиса исполнения запросов;DTM_CORE_TASK_POOL_SIZE- максимальный объем пула задач в Сервисе исполнения запросов;DTM_CORE_TASK_TIMEOUT- интервал времени завершения задачи, выполняемой в Сервисе исполнения запросов.
Оптимизация работы сокета
TCP_NODELAY:
DTM_CORE_HTTP_TCP_NODELAY- настройка режима оптимизации работы сокетаTCP_NODELAY;DTM_CORE_HTTP_TCP_FAST_OPEN- настройка режимаTCP FAST_OPEN;DTM_CORE_HTTP_TCP_QUICK_ACK- настройка режима оптимизации работы сокетаTCP_QUICKACK.
Настройки для
EDMLоператоров:
EDML_DATASOURCE- тип СУБД-источника;EDML_DEFAULT_CHUNK_SIZE– размерchunkпо умолчанию;EDML_STATUS_CHECK_PERIOD_MS- период проверки статуса плагина в миллисекундах;EDML_FIRST_OFFSET_TIMEOUT_MS- интервал времени ожидания до таймаута в миллисекундах при работе с первым смещением;EDML_CHANGE_OFFSET_TIMEOUT_MS- интервал времени ожидания до таймаута в миллисекундах при работе с первым смещением в топике Kafka.
Настройка Zookeeper-серверов:
ZOOKEEPER_DS_ADDRESS- сетевой адрес хоста Zookeeper для служебной БД;ZOOKEEPER_DS_CONNECTION_TIMEOUT_MS- интервал времени ожидания (в миллисекундах) соединения с хостом Zookeeper для служебной БД до достижения таймаута;ZOOKEEPER_DS_SESSION_TIMEOUT_MS- интервал времени бездействия (в миллисекундах) соединения с хостом Zookeeper для служебной БД до достижения таймаута;ZOOKEEPER_DS_CHROOT- корневой путь к хосту Zookeeper для служебной БД;ZOOKEEPER_KAFKA_ADDRESS- сетевой адрес хоста Zookeeper для брокера сообщений Kafka;ZOOKEEPER_KAFKA_CONNECTION_TIMEOUT_MS- интервал времени ожидания (в миллисекундах) соединения с хостом Zookeeper для брокера сообщений Kafka до достижения таймаута;ZOOKEEPER_KAFKA_SESSION_TIMEOUT_MS- интервал времени бездействия (в миллисекундах) соединения с хостом Zookeeper для брокера сообщений Kafka до достижения таймаута;ZOOKEEPER_KAFKA_CHROOT- корневой путь к хосту Zookeeper для брокера сообщений Kafka.
Настройка Kafka-серверов:
KAFKA_INPUT_STREAM_TIMEOUT_MS– интервал времени ожидания (в миллисекундах) входного потока данных для брокера сообщений Kafka до достижения таймаута;KAFKA_STATUS_EVENT_ENABLED- разрешение на публикацию событий;KAFKA_STATUS_EVENT_TOPIC- наименование топика Kafka, в который публикуются события;STATUS_MONITOR_URL- сетевой адрес, порт и путь к Сервису мониторинга статусов Kafka.
Настройки кэширования запросов:
CACHE_INITIAL_CAPACITY- начальная емкость кэша;CACHE_MAXIMUM_SIZE- максимальный размер кэша;CACHE_EXPIRE_AFTER_ACCESS_MINUTES- время (в минутах) устаревания кэша после последнего момента доступа к нему.
2.2.1.2. Настройка Сервиса мониторинга Kafka (status-monitor)
Настройка Сервиса мониторинга статусов Kafka осуществляется путём указания в соответствующем конфигурационном yml-файле параметров отслеживания файлов-топиков брокера сообщений Kafka, таких как: смещения consumer, содержания последнего сообщения и времени появления последнего сообщения. Пример полного yml-файла со всеми конфигурируемыми атрибутами, приведен в Приложении 1 (см. Приложение 1).
STATUS_MONITOR_BROKERS- сетевые адреса и порты брокеров сообщений Kafka, которые отслеживает Сервис мониторинга статусов Kafka.STATUS_MONITOR_CONSUMERS- количество потребителей (consumer) Сервиса мониторинга статусов Kafka.
2.2.2. Настройка ПОДД-адаптера - Модуль исполнения запросов
2.2.2.1. Конфигурация ПОДД-адаптера - Модуль исполнения запросов (application.yml)
Файл application.yml – основной конфигурационный файл ПОДД-адаптера - Модуль исполнения запросов, в котором задана логика и порядок работы адаптера: получение входящих запросов, их обработка, подключение к Сервису формирования документов (секция: printable-forms-service), настройки логирования (секция: logging), а также другие настройки необходимые для корректной работы адаптера. Хинт пагинации FORCE_LLR определен в переменных среды.
2.2.2.2. Пример файла application.yml
Приведем типовую структуру файла и возможные настройки ПОДД-адаптера - Модуль исполнения запросов. Следует учитывать, что в конфигурационном файле следует задавать только те настройки, которые необходимы для решения текущих бизнес-задач.
http-server:
port: ${HTTP_PORT:8090}
environment:
name: ${ENVIRONMENT_NAME:test}
executor:
reader-pool-size: ${EXECUTOR_READER_POOL_SIZE:20}
max-execute-time: ${EXECUTOR_MAX_EXECUTE_TIME:600}
log-pool-size: ${EXECUTOR_LOG_POOL_SIZE:20}
send:
channel-size: ${SEND_CHANNEL_SIZE:1}
compress: ${SEND_COMPRESS:none}
max-message-size: ${SEND_MAX_MESSAGE_SIZE:800000}
query:
data-source-type: ${DATA_SOURCE_TYPE:ADB}
force-llr-for-order: ${FORCE_LLR_FOR_ORDER:true}
force-llr-for-all: ${FORCE_LLR_FOR_ALL:false}
llr-rows-limit: ${LLR_ROWS_LIMIT:200}
fetch-size: ${FETCH_SIZE:1000}
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}
prostore-rest-client:
# Признак использования rest-api для взаимодействия с простором. Если false - будет использоваться jdbc драйвер
enabled: ${PS_REST_CLIENT_ENABLED:true}
host: ${PS_HOST:localhost}
port: ${PS_PORT:9195}
http:
max-pool-size: ${PS_MAX_POOL_SIZE:8}
prostore:
datasource:
subprotocol: ${PS_SUBPROTOCOL:prostore}
driver: ${PS_DRIVER:ru.datamart.prostore.jdbc.Driver}
host: ${PS_HOST:localhost}
port: ${PS_PORT:9195}
initialPoolSize: ${PS_INITIAL_POOL_SIZE:5}
maxPoolSize: ${PS_MAX_POOL_SIZE:8}
additional-props:
key: value
printable-forms-service:
host: ${PFS_HOST:localhost}
port: ${PFS_PORT:8080}
pool-size: ${PFS_POOL_SIZE:10}
timeout: ${PFS_TIMEOUT:30}
kafka:
agent.topic.prefix: ${AGENT_TOPIC_PREFIX:}
max-concurrent-handle: ${KAFKA_MAX_CONCURRENT_HANDLE:1000}
commit-interval: ${KAFKA_COMMIT_INTERVAL:5s}
external:
bootstrap.servers: ${KAFKA_BOOTSTRAP_SERVERS:localhost:9092}
topic.prefix: ${EXTERNAL_TOPIC_PREFIX:${agent.topic.prefix}}
internal:
bootstrap.servers: ${PS_KAFKA:localhost:9092}
topic.prefix: ${INTERNAL_TOPIC_PREFIX:${agent.topic.prefix}}
consumer:
query-request:
topic: ${kafka.external.topic.prefix}query.rq
max-concurrent-handle: ${kafka.max-concurrent-handle}
commit-interval: ${kafka.commit-interval}
property:
bootstrap.servers: ${kafka.external.bootstrap.servers}
group.id: ${kafka.external.topic.prefix}query.consumer
auto.offset.reset: earliest
enable.auto.commit: false
query-cancel-request:
topic: ${kafka.external.topic.prefix}cancel.rq
commit-interval: ${kafka.commit-interval}
property:
bootstrap.servers: ${kafka.external.bootstrap.servers}
group.id: ${kafka.external.topic.prefix}cancel.query.consumer
auto.offset.reset: earliest
enable.auto.commit: false
metadata-request:
topic: ${kafka.external.topic.prefix}metadata.rq
commit-interval: ${kafka.commit-interval}
property:
bootstrap.servers: ${kafka.external.bootstrap.servers}
group.id: ${kafka.external.topic.prefix}metadata.consumer
auto.offset.reset: earliest
enable.auto.commit: false
metadata-new-data-request:
topic: ${kafka.external.topic.prefix}metadata.newdata.rq
commit-interval: ${kafka.commit-interval}
property:
bootstrap.servers: ${kafka.external.bootstrap.servers}
group.id: ${kafka.external.topic.prefix}metadata.newdata.consumer
auto.offset.reset: earliest
enable.auto.commit: false
statistics-request:
topic: ${kafka.external.topic.prefix}statistics.rq
commit-interval: ${kafka.commit-interval}
property:
bootstrap.servers: ${kafka.external.bootstrap.servers}
group.id: ${kafka.external.topic.prefix}statistics.rq.consumer
auto.offset.reset: earliest
enable.auto.commit: false
report-request:
topic: ${kafka.external.topic.prefix}procedure.query.rq
max-concurrent-handle: ${kafka.max-concurrent-handle}
commit-interval: ${kafka.commit-interval}
property:
bootstrap.servers: ${kafka.external.bootstrap.servers}
group.id: ${kafka.external.topic.prefix}report.rq.consumer
auto.offset.reset: earliest
enable.auto.commit: false
producer:
query-result: ${kafka.external.topic.prefix}query.rs
query-error: ${kafka.external.topic.prefix}query.err
query-estimation-result: ${kafka.external.topic.prefix}query.estimation.rs
query-cancel-result: ${kafka.external.topic.prefix}cancel.rs
query-cancel-error: ${kafka.external.topic.prefix}cancel.err
metadata-result: ${kafka.external.topic.prefix}metadata.rs
metadata-error: ${kafka.external.topic.prefix}metadata.err
metadata-newdata-result: ${kafka.external.topic.prefix}metadata.newdata.rs
metadata-newdata-error: ${kafka.external.topic.prefix}metadata.newdata.err
statistics-result: ${kafka.external.topic.prefix}statistics.rs
statistics-error: ${kafka.external.topic.prefix}statistics.err
report-result: ${kafka.external.topic.prefix}query.rs
report-error: ${kafka.external.topic.prefix}query.err
property:
bootstrap.servers: ${kafka.external.bootstrap.servers}
internal:
mppr-query-request: ${kafka.internal.topic.prefix}mppr.delegate.rq
tp-delete-tmp: ${kafka.internal.topic.prefix}tp.delete.tmp
property:
bootstrap.servers: ${kafka.internal.bootstrap.servers}
statistics:
enabled: ${STATISTICS_ENABLED:false}
timeout-min: ${STATISTICS_TIMEOUT_MIN:60}
datamarts:
- name: demo_dev
tables:
- name: all_types
columns:
- varchar_c
- char_c
- bigint_c
logging:
request-response:
query-request: ${QUERY_REQUEST_LOG_ENABLED:false}
query-response: ${QUERY_RESPONSE_LOG_ENABLED:false}
pf-request: ${PF_REQUEST_LOG_ENABLED:false}
pf-response: ${PF_RESPONSE_LOG_ENABLED:false}
metrics:
port: ${METRICS_PORT:9837}
2.2.2.3. Параметры конфигурации
Настройка конфигурации ПОДД-адаптера - Модуль исполнения запросов осуществляется путем редактирования параметров настроек в файле application.yml.
Пример конфигурации файла application.yml для ПОДД-адаптера - Модуль исполнения запросов см. в разделе Пример файла application.yml Руководства администратора.
В файле конфигурации ПОДД-адаптера - Модуль исполнения запросов могут быть настроены следующие секции:
http-server- указывается порт для подключения;environment- указывается название окружения (test,prodи т.д.);executor- настраивается размер пула для запросов;send- настраиваются ограничения на размер загружаемого файла;query- настройка выполнения запросов;zookeeper- подключения в Zookeeper;prostore-rest-client- блок параметров конфигурирования взаимодействия с ProStore. Если false - будет использоваться JDBC-драйвер.prostore- указываются настройки подключения к ProStore;printable-forms-service- настройки подключения к Сервис формирования документов;kafka- настройки параметров подключения к шине данных Apache Kafka;statistics- управление статистикой;logging- настройка сохранения лог-файла;metrics- настройка получения метрик.
2.2.2.3.1. Секция http-server
В секции http-server указывается порт веб-сервера.
Например:
http:
port: ${HTTP_PORT:8090}
Параметры настроек
port- порт веб-сервера, например:HTTP_PORT:8090.
2.2.2.3.2. Секция environment
Секция environment предназначена для настройки параметров окружения.
Например:
environment:
name: ${ENVIRONMENT_NAME:test}
Параметры настроек
name- название окружения (test, prod и т.д.), например:ENVIRONMENT_NAME:test.
2.2.2.3.3. Секция executor
Секция executor предназначена для указания размера пула для чтения Kafka и времени выполнения задач.
Например:
executor:
reader-pool-size: ${EXECUTOR_READER_POOL_SIZE:20}
max-execute-time: ${EXECUTOR_MAX_EXECUTE_TIME:600}
log-pool-size: ${EXECUTOR_LOG_POOL_SIZE:20}
Параметры настроек
reader-pool-size- размер пула для чтения Kafka, напримерEXECUTOR_READER_POOL_SIZE:20;max-execute-time- максимальное время выполнения задачи (сек), напримерEXECUTOR_MAX_EXECUTE_TIME:600;log-pool-size- Размер используемого пула для журналирования запросов и ответов, напримерEXECUTOR_LOG_POOL_SIZE:20.
2.2.2.3.4. Секция send
В секции send настраиваются ограничения на размер загружаемого файла.
Например:
send:
channel-size: ${SEND_CHANNEL_SIZE:1}
compress: ${SEND_COMPRESS:none}
max-message-size: ${SEND_MAX_MESSAGE_SIZE:800000}
Параметры настроек
channel-size- размер канала на отправку сообщения, напримерSEND_CHANNEL_SIZE:10;compress- сжатие выгружаемых сообщений (none или zstd), напримерSEND_COMPRESS:none;max-message-size- максимальный размер отправляемого сообщения, напримерSEND_MAX_MESSAGE_SIZE:800000.
2.2.2.3.5. Секция query
В секции query выполняется настройка выполнения запросов.
Например:
query:
data-source-type: ${DATA_SOURCE_TYPE:ADB}
force-llr-for-order: ${FORCE_LLR_FOR_ORDER:true}
force-llr-for-all: ${FORCE_LLR_FOR_ALL:false}
llr-rows-limit: ${LLR_ROWS_LIMIT:200}
fetch-size: ${FETCH_SIZE:1000}
Параметры настроек
data-source-type- выполнение запроса с LISTAGG на (ADB/ADP), напримерDATA_SOURCE_TYPE:ADB;force-llr-for-order- выполнение ORDER BY запроса c использованием пагинации, напримерFORCE_LLR_FOR_ORDER:true;force-llr-for-all- выполнение всех запросов через LLR, напримерFORCE_LLR_FOR_ALL:false;llr-rows-limit- ограничение выгрузки через ЛЛР, при использовании в запросе лимита со значением меньшим, чем указанное значение, напримерLLR_ROWS_LIMIT:200, будет использован режим LLR;fetch-size- размер выгрузки через JDBC, напримерFETCH_SIZE:1000.
2.2.2.3.6. Секция zookeeper
Секция zookeeper определяет настройки подключения в zookeeper DS.
Например:
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.
2.2.2.3.7. Секция prostore-rest-client
В секции prostore-rest-client реализован блок параметров конфигурирования взаимодействия с ProStore. Параметр prostore-rest-client.enabled со значением
false позволяет переключить исполнение запросов через JDBC-драйвер.
Например:
prostore-rest-client:
enabled: true
host: ${PS_HOST:localhost}
port: ${PS_PORT:9195}
http:
max-pool-size: ${PS_MAX_POOL_SIZE:8}
Параметры настроек
host- адрес Prostore, напримерPS_HOST:localhost;port- порт Prostore, напримерPS_PORT:9195;max-pool-size- максимальное число подключений к Prostore, напримерPS_MAX_POOL_SIZE:8.
2.2.2.3.8. Секция prostore
Секция prostore определяет настройки подключения к ProStore.
Например:
prostore:
datasource:
subprotocol: ${PS_SUBPROTOCOL:prostore}
driver: ${PS_DRIVER:ru.datamart.prostore.jdbc.Driver}
host: ${PS_HOST:localhost}
port: ${PS_PORT:9195}
initialPoolSize: ${PS_INITIAL_POOL_SIZE:5}
maxPoolSize: ${PS_MAX_POOL_SIZE:8}
additional-props:
key: value
Параметры конфигурации
subprotocol- Subprotocol для JDBC, напримерPS_SUBPROTOCOL:prostore;driver- имя класса JDBC драйвера, напримерPS_DRIVER:ru.datamart.prostore.jdbc.Driver;host- адрес Prostore, напримерPS_HOST:t5-prostore-01.ru-central1.internal;port- порт Prostore, напримерPS_PORT:9195;initialPoolSize- начальное число подключений к Prostore, напримерPS_INITIAL_POOL_SIZE:5;maxPoolSize- максимальное число подключений к Prostore, напримерPS_MAX_POOL_SIZE:8.
2.2.2.3.9. Секция printable-forms-service
Секция printable-forms-service определяет настройки подключения к Сервис формирования документов.
Например:
printable-forms-service:
host: ${PFS_HOST:localhost}
port: ${PFS_PORT:8080}
pool-size: ${PFS_POOL_SIZE:10}
timeout: ${PFS_TIMEOUT:30}
Параметры настроек
host- адрес сервера формирования документов, напримерPFS_HOST:localhost;port- порт сервера формирования документов, напримерPFS_PORT:8080;pool-size- размер пула соединений для ПФ, напримерPFS_POOL_SIZE:10;timeout- таймаут переподключения к сервису формирования документов (секунды), напримерPFS_TIMEOUT:30.
2.2.2.3.10. Секция kafka
В секции kafka собраны настройки параметров подключения к шине данных Apache Kafka.
Например:
kafka:
agent.topic.prefix: ${AGENT_TOPIC_PREFIX:}
max-concurrent-handle: ${KAFKA_MAX_CONCURRENT_HANDLE:1000}
commit-interval: ${KAFKA_COMMIT_INTERVAL:5s}
external:
bootstrap.servers: ${KAFKA_BOOTSTRAP_SERVERS:localhost:9092}
topic.prefix: ${EXTERNAL_TOPIC_PREFIX:${agent.topic.prefix}}
internal:
bootstrap.servers: ${PS_KAFKA:localhost:9092}
topic.prefix: ${INTERNAL_TOPIC_PREFIX:${agent.topic.prefix}}
consumer:
query-request:
topic: ${kafka.external.topic.prefix}query.rq
max-concurrent-handle: ${kafka.max-concurrent-handle}
commit-interval: ${kafka.commit-interval}
property:
bootstrap.servers: ${kafka.external.bootstrap.servers}
group.id: ${kafka.external.topic.prefix}query.consumer
auto.offset.reset: earliest
enable.auto.commit: false
query-cancel-request:
topic: ${kafka.external.topic.prefix}cancel.rq
commit-interval: ${kafka.commit-interval}
property:
bootstrap.servers: ${kafka.external.bootstrap.servers}
group.id: ${kafka.external.topic.prefix}cancel.query.consumer
auto.offset.reset: earliest
enable.auto.commit: false
metadata-request:
topic: ${kafka.external.topic.prefix}metadata.rq
commit-interval: ${kafka.commit-interval}
property:
bootstrap.servers: ${kafka.external.bootstrap.servers}
group.id: ${kafka.external.topic.prefix}metadata.consumer
auto.offset.reset: earliest
enable.auto.commit: false
metadata-new-data-request:
topic: ${kafka.external.topic.prefix}metadata.newdata.rq
commit-interval: ${kafka.commit-interval}
property:
bootstrap.servers: ${kafka.external.bootstrap.servers}
group.id: ${kafka.external.topic.prefix}metadata.newdata.consumer
auto.offset.reset: earliest
enable.auto.commit: false
statistics-request:
topic: ${kafka.external.topic.prefix}statistics.rq
commit-interval: ${kafka.commit-interval}
property:
bootstrap.servers: ${kafka.external.bootstrap.servers}
group.id: ${kafka.external.topic.prefix}statistics.rq.consumer
auto.offset.reset: earliest
enable.auto.commit: false
report-request:
topic: ${kafka.external.topic.prefix}procedure.query.rq
max-concurrent-handle: ${kafka.max-concurrent-handle}
commit-interval: ${kafka.commit-interval}
property:
bootstrap.servers: ${kafka.external.bootstrap.servers}
group.id: ${kafka.external.topic.prefix}report.rq.consumer
auto.offset.reset: earliest
enable.auto.commit: false
producer:
query-result: ${kafka.external.topic.prefix}query.rs
query-error: ${kafka.external.topic.prefix}query.err
query-estimation-result: ${kafka.external.topic.prefix}}query.estimation.rs
query-cancel-result: ${kafka.external.topic.prefix}cancel.rs
query-cancel-error: ${kafka.external.topic.prefix}cancel.err
metadata-result: ${kafka.external.topic.prefix}metadata.rs
metadata-error: ${kafka.external.topic.prefix}metadata.err
metadata-newdata-result: ${kafka.external.topic.prefix}metadata.newdata.rs
metadata-newdata-error: ${kafka.external.topic.prefix}metadata.newdata.err
statistics-result: ${kafka.external.topic.prefix}statistics.rs
statistics-error: ${kafka.external.topic.prefix}statistics.err
report-result: ${kafka.external.topic.prefix}query.rs
report-error: ${kafka.external.topic.prefix}query.err
property:
bootstrap.servers: ${kafka.external.bootstrap.servers}
internal:
mppr-query-request: ${kafka.internal.topic.prefix}mppr.delegate.rq
tp-delete-tmp: ${kafka.internal.topic.prefix}tp.delete.tmp
property:
bootstrap.servers: ${kafka.internal.bootstrap.servers}
Параметры конфигурации
topic- префикс для топиков агента ПОДД, напримерAGENT_TOPIC_PREFIX.
2.2.2.3.11. Секция statistics
Секция statistics предназначена для управления статистикой.
Например:
statistics:
enabled: ${STATISTICS_ENABLED:false}
timeout-min: ${STATISTICS_TIMEOUT_MIN:60}
datamarts:
- name: demo_dev
tables:
- name: all_types
columns:
- varchar_c
- char_c
- bigint_c
Параметры конфигурации
enabled- включение (true)/ выключение (false) расчета статистики, напримерSTATISTICS_ENABLED:false;timeout-min- время обновления статистики (минуты), напримерSTATISTICS_TIMEOUT_MIN:60.
2.2.2.3.12. Секция logging
Секция logging предназначена для настройки параметров логирования.
Например:
logging:
request-response:
query-request: ${QUERY_REQUEST_LOG_ENABLED:false}
query-response: ${QUERY_RESPONSE_LOG_ENABLED:false}
pf-request: ${PF_REQUEST_LOG_ENABLED:false}
pf-response: ${PF_RESPONSE_LOG_ENABLED:false}
Параметры конфигурации
query-request- журналирование query запросов, напримерQUERY_REQUEST_LOG_ENABLED:false;query-response- журналирование query ответов, напримерQUERY_RESPONSE_LOG_ENABLED:false;pf-request- журналирование запросов на сервис формирования документов, напримерPF_REQUEST_LOG_ENABLED:false;pf-response- журналирование ответов от сервиса формирования документов, напримерPF_RESPONSE_LOG_ENABLED:false.
2.2.2.3.13. Секция metrics
Секция metrics предназначена для настройки параметров метрик.
Например:
metrics:
port: ${METRICS_PORT:9837}
Параметры конфигурации
port- Порт для метрик, напримерMETRICS_PORT:9837.
Описание формата взаимодействия между Агентом ПОДД и ПОДД-адаптером - Модуль исполнения запросов (название топиков, формат сообщений, схема взаимодействия) описан в документе Спецификация модуля ПОДД-адаптера - Модуль исполнения запросов.
2.2.3. Настройка ПОДД-адаптер – Модуль MPPR
2.2.4. Настройка Модуля подписок
2.2.5. Настройка Модуля группировки группировки чанков репликации
2.2.6. Настройка CSV-Uploader
2.2.6.1. Конфигурация CSV-uploader (application.yml)
Файл application.yml – основной конфигурационный файл CSV-uploader, в котором задана логика и порядок работы загрузчика, а также другие настройки необходимые для корректной работы адаптера.
2.2.6.1.1. Пример файла application.yml
# Kafka Prostore
.kafkaUrl: &kafkaUrl ${KAFKA_BOOTSTRAP_SERVERS:localhost:9092}
http-server:
# Порт для старта веб сервера
port: ${HTTP_PORT:8080}
# Включить веб-сервер
enabled: ${HTTP_ENABLED:true}
send:
# Размер отправляемой порции данных
chunk-row-count: ${CHUNK_ROW_COUNT:1000}
# Размер буфера на чтение файла
file-buffer-size: ${FILE_BUFFER_SIZE:1048576}
# Количество Job на чтение
read-job-count: ${READ_JOB_COUNT:4}
# Размер Channel для сериализации
serialize-channel-size: ${SERIALIZE_CHANNEL_SIZE:20}
# Количество Job на сериализацию
serialize-job-count: ${SERIALIZE_JOB_COUNT:4}
# Размер Job на отправку
send-channel-size: ${SEND_CHANNEL_SIZE:20}
# Количество Job на отправку
send-job-count: ${SEND_JOB_COUNT:4}
# Ограничение на размер оправляемого файла (мегабайты)
file-size-restriction: ${SEND_FILE_SIZE_RESTRICTION:1024}
logging.level:
root: info
ru.itone: debug
environment:
# Название окружения
name: ${ENVIRONMENT_NAME:test}
# Папка для ошибочных файлов
error-folder: ${ENVIRONMENT_ERROR_FOLDER:error}
zookeeper:
# Адрес сервера zookeeper
connection-string: ${ZK_CONNECTION:localhost}
# Таймаут сессии
session-timeout-ms: ${ZK_SESSION_TIMEOUT_MS:30000}
# Таймаут подключения
connection-timeout-ms: ${ZK_CONNECTION_TIMEOUT_MS:86400000}
chroot: ${ZOOKEEPER_DS_CHROOT:/adapter}
migration:
enabled: ${MIGRATION_ENABLE:false}
prostore-rest-client:
# Признак использования rest-api для взаимодействия с простором. Если false - будет использоваться jdbc драйвер
enabled: ${PS_REST_CLIENT_ENABLED:true}
host: ${PS_HOST:localhost}
port: ${PS_PORT:9195}
http:
max-pool-size: ${PS_MAX_POOL_SIZE:8}
prostore:
# subprotocol для jdbc
subprotocol: ${PS_SUBPROTOCOL:prostore}
# Драйвер для подключения к простору
driver: ${PS_DRIVER:ru.datamart.prostore.jdbc.Driver}
# Подключение к Prostore
host: ${PS_HOST:localhost}
# Prostore порт
port: ${PS_PORT:9195}
# Prostore начальный размер пула ру
initialPoolSize: ${PS_INITIAL_POOL_SIZE:5}
# Prostore максимальный размер пула
maxPoolSize: ${PS_MAX_POOL_SIZE:8}
additional-props:
key: value
zookeeper:
# Адрес сервера zookeeper для загрузки данных в простор
connection-string: ${ZK_PROSTORE_CONNECTION:locahost:2181}
validation:
enable: ${VALIDATION_ENABLE:true}
rest-uploader-url: ${REST_UPLOADER_URL:http://localhost:8081}
# обязательность использования ФЛК
mandator: ${VALIDATION_MANDATOR:false}
upload:
# требуется токен для аутентификации на rest-uploader
jwt-auth: ${JWT_AUTH:false}
kafka:
create-topic:
# Количество партиций на загрузку через EDML
num-partitions: ${EDML_UPLOAD_NUM_PARTITIONS:1}
# Фактор репликации при создании топика
replication-factor: ${EDML_UPLOAD_REPLICATION_FACTOR:1}
topic:
# Топик для журналирования
journal-log: journal.log
flk-log: flk.log
consumer:
# Количество партиций на выгрузку через EDML
num-partitions: ${EDML_DOWNLOAD_NUM_PARTITIONS:1}
property:
bootstrap.servers: *kafkaUrl
group.id: csv-uploader
auto.offset.reset: earliest
enable.auto.commit: true
producer:
property:
bootstrap.servers: *kafkaUrl
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}
metrics:
port: ${METRICS_PORT:9837}
backup:
zk-path: ${CSV_UPLOADER_BACKUP_ZK_PATH:/${environment.name}/csv-uploader/config}
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}
group.id: ${CSV_UPLOADER_BACKUP_GROUP_ID:csv_uploader_adapter_command}
auto.offset.reset: latest
producer:
property:
bootstrap.servers: ${KAFKA_BOOTSTRAP_SERVERS:localhost}
jet-connector:
use: ${JET_CONNECTOR_USE:false}
kafka-consumer-group-name: ${JET_CONNECTOR_GROUP_NAME:csv-uploader}
kafka-poll-duration-ms: ${JET_POLL_DURATION:200}
kafka-poll-buffer-size: ${JET_POLL_BUFFER:2000}
db-records-buffer-size: ${JET_DB_RECORDS_BUFFER:2000}
2.2.6.2. Параметры конфигурации
Настройка конфигурации CSV-uploader осуществляется путем редактирования параметров настроек в файле application.yml. Некоторые настройки доступны для редактирования через пользовательский интерфейс модуля, например, Настройка отображения количества записей в Журнале операций и Запуск по расписанию.
Пример конфигурации файла application.yml для CSV-uploader см. в разделе Пример файла application.yml Руководства администратора.
В файле конфигурации CSV-uploader могут быть настроены следующие секции:
kafkaUrl- URL для доступа к Kafka;http-server- настройки порта подключения;send- настройка отправки файлов;logging.level- настройка сохранения лог-файла;environment- определяет значение среды разработки;zookeeper- настройка подключения Zookeeper;migration- настройка миграции зукипера для задачи бекапирования;prostore-rest-client- блок параметров конфигурирования взаимодействия с ProStore. Если false - будет использоваться JDBC-драйвер;prostore- настройка подключения к ProStore;validation- включение/выключение механизма валидации загрузки с помощью rest-uploader сервиса;upload- требование токена для аутентификации на rest-uploader;kafka- настройка подключения к шине данных Apache Kafka;csv-parser- настройка парсинга CSV;metrics- настройка получения метрик;backup- настройка бэкапирования модуля;jet-connector- подготовлен для оптимизации задержек записи.
2.2.6.2.1. Секция kafkaUrl
В секция kafkaUrl указывается URL-адрес для доступа к Apache Kafka (ProStore).
Например:
.kafkaUrl: &kafkaUrl ${KAFKA_BOOTSTRAP_SERVERS:dev-dtm-one05.ru-central1.internal:9092}
Параметры конфигурации:
KAFKA_BOOTSTRAP_SERVERS - URL-адрес для доступа к Apache Kafka (ProStore).
2.2.6.2.2. Секция http
Секция http предназначена для настройки порта и протокола передачи данных (одно из значений http или https).
Например:
http:
port: ${HTTP_PORT:8080}
enabled: ${HTTP_ENABLED:true}
Параметры конфигурации
port- порт для старта веб-сервера;enabled- статус включения/отключения веб-сервера.
2.2.6.2.3. Секция query-executor
Секция query-executor определяет настройки настройка получения входящих запросов.
Например:
query-executor:
reader-pool-size: ${READER_POOL_SIZE:20}
rest-pool-size: ${REST_POOL_SIZE:5}
writer-pool-size: ${WRITER_POOL_SIZE:1}
kafka-pool-size: ${KAFKA_POOL_SIZE:20}
Параметры конфигурации
reader-pool-size- размер пула на чтение, например:READER_POOL_SIZE:20;rest-pool-size- размер пула на REST, например:REST_POOL_SIZE:5;writer-pool-size- размер пула на запись, например:WRITER_POOL_SIZE:1;kafka-pool-size- размер kafka пула на отправку, напримерKAFKA_POOL_SIZE:20.
2.2.6.2.4. Секция send
Секция send определяет настройки отправки файлов.
Например:
send:
chunk-row-count: ${CHUNK_ROW_COUNT:1000}
file-buffer-size: ${FILE_BUFFER_SIZE:1048576}
read-job-count: ${READ_JOB_COUNT:4}
serialize-channel-size: ${SERIALIZE_CHANNEL_SIZE:20}
serialize-job-count: ${SERIALIZE_JOB_COUNT:4}
send-channel-size: ${SEND_CHANNEL_SIZE:20}
send-job-count: ${SEND_JOB_COUNT:4}
file-size-restriction: ${SEND_FILE_SIZE_RESTRICTION:1024}
Параметры конфигурации:
chunk-row-count- размер отправляемой порции данных, напримерCHUNK_ROW_COUNT:100;file-buffer-size- размер буфера на чтение файла, напримерFILE_BUFFER_SIZE:1048576;read-job-count- количество Job на чтение, напримерREAD_JOB_COUNT:4;serialize-channel-size- размерChannelдля сериализации, напримерSERIALIZE_CHANNEL_SIZE:20;serialize-job-count- количество задач на сериализацию, напримерSERIALIZE_JOB_COUNT:4;send-channel-size- размер задач на отправку, напримерSEND_CHANNEL_SIZE:20;send-job-count- количество задач на отправку, напримерSEND_JOB_COUNT:4;file-size-restriction- ограничение на размер оправляемого файла (мегабайты), напримерSEND_FILE_SIZE_RESTRICTION:1024.
2.2.6.2.5. Секция logging.level
Секция logging.level определяет настройки записи логирования.
Например:
logging.level:
root: info
ru.itone: debug
2.2.6.2.6. Секция environment
Секция environment определяет значение среды разработки (например, значение test, prod и т.д).
Например:
environment:
name: ${ENVIRONMENT_NAME:test}
error-folder: ${ENVIRONMENT_ERROR_FOLDER:error}
Параметры конфигурации
name- название окружения, напримерENVIRONMENT_NAME:test;error-folder- папка для ошибочных файлов, напримерENVIRONMENT_ERROR_FOLDER:error.
2.2.6.2.7. Секция zookeeper
Секция zookeeper предназначена для настройки параметров подключения к серверу Zookeeper.
Например:
zookeeper:
connection-string: ${ZK_CONNECTION:t5-ads-02.ru-central1.internal}
session-timeout-ms: ${ZK_SESSION_TIMEOUT_MS:30000}
connection-timeout-ms: ${ZK_CONNECTION_TIMEOUT_MS:86400000}
Параметры конфигурации
connection-string- адрес сервера Zookeeper, напримерZK_CONNECTION:t5-ads-02.ru-central1.internal;session-timeout-ms- таймаут сессии, напримерZK_SESSION_TIMEOUT_MS:30000;connection-timeout-ms- таймаут подключения, напримерZK_CONNECTION_TIMEOUT_MS:86400000.
2.2.6.2.8. Секция migration
В секции migration реализована настройка миграции зукипера для задачи бекапирования
Например:
migration:
enabled: ${MIGRATION_ENABLE:false}
Параметры настроек
enabled- включение миграции (по умолчанию выключена), например{MIGRATION_ENABLE:false}.
2.2.6.2.9. Секция prostore-rest-client
В секции prostore-rest-client реализован блок параметров конфигурирования взаимодействия с ProStore. Параметр prostore-rest-client.enabled со значением
false позволяет переключить исполнение запросов через JDBC-драйвер.
Например:
prostore-rest-client:
enabled: ${PS_REST_CLIENT_ENABLED:true}
host: ${PS_HOST:localhost}
port: ${PS_PORT:9195}
http:
max-pool-size: ${PS_MAX_POOL_SIZE:8}
Параметры настроек
host- адрес Prostore, напримерPS_HOST:localhost;port- порт Prostore, напримерPS_PORT:9195;max-pool-size- максимальное число подключений к Prostore, напримерPS_MAX_POOL_SIZE:8.
2.2.6.2.10. Секция prostore
Секция prostore предназначена для настройки параметров подключения к ядру ProStore.
Например:
prostore:
subprotocol: ${PS_SUBPROTOCOL:prostore}
driver: ${PS_DRIVER:ru.datamart.prostore.jdbc.Driver}
host: ${PS_HOST:dev-dtm-one05.ru-central1.internal}
port: ${PS_PORT:9090}
initialPoolSize: ${PS_INITIAL_POOL_SIZE:5}
maxPoolSize: ${PS_MAX_POOL_SIZE:8}
additional-props:
key: value
zookeeper:
connection-string: ${ZK_PROSTORE_CONNECTION:dev-dtm-one05.ru-central1.internal:2181}
Параметры конфигурации
subprotocol- subprotocol для jdbc, напримерPS_SUBPROTOCOL:prostore;driver- драйвер для подключения к Prostore, напримерPS_DRIVER:ru.datamart.prostore.jdbc.Driver;host- подключение к Prostore, напримерPS_HOST:dev-dtm-one05.ru-central1.internal;port- Prostore порт, напримерPS_PORT:9090;initialPoolSize- начальное число подключений к Prostore, напримерPS_INITIAL_POOL_SIZE:5;maxPoolSize- максимальное число подключений к Prostore, например, напримерPS_MAX_POOL_SIZE:8;connection-string- адрес сервера zookeeper для загрузки данных в Prostore, напримерZK_PROSTORE_CONNECTION:dev-dtm-one05.ru-central1.internal:2181.
2.2.6.2.11. Секция validation
В секции validation реализован механизм настройки валидации ФЛК.
Например:
enable: ${VALIDATION_ENABLE:true}
rest-uploader-url: ${REST_UPLOADER_URL:http://localhost:8081}
mandator: ${VALIDATION_MANDATOR:false}
Параметры конфигурации
enable- валидация включена (по умолчанию), например{VALIDATION_ENABLE:true};rest-uploader-url- URL к сервису rest-uploader для выполнения валидации, например{REST_UPLOADER_URL:http://localhost:8081};mandator- обязательность использования ФЛК, например{VALIDATION_MANDATOR:false}.
2.2.6.2.12. Секция upload
В секции upload реализована настройка требования токена для аутентификации на REST-Uploader (если true, то при переключении на вкладку Загрузка появляется модальное окно для задания токена в текстовом виде и кнопка Сохранить)
Например:
upload:
jwt-auth: ${JWT_AUTH:false}
Параметры конфигурации
jwt-auth- требование токена для аутентификации на REST-Uploader, например{JWT_AUTH:false}.
2.2.6.2.13. Секция kafka
Секция kafka предназначена для настройки параметров подключения к шине данных Apache Kafka.
Например:
kafka:
create-topic:
num-partitions: ${EDML_UPLOAD_NUM_PARTITIONS:1}
replication-factor: ${EDML_UPLOAD_REPLICATION_FACTOR:1}
topic:
journal-log: journal.log
consumer:
num-partitions: ${EDML_DOWNLOAD_NUM_PARTITIONS:1}
property:
bootstrap.servers: *kafkaUrl
group.id: csv-uploader
auto.offset.reset: earliest
enable.auto.commit: true
producer:
property:
bootstrap.servers: *kafkaUrl
Параметры конфигурации
num-partitions- количество партиций на загрузку через EDML, напримерEDML_UPLOAD_NUM_PARTITIONS:1;replication-factor- фактор репликации при создании топика, напримерEDML_UPLOAD_REPLICATION_FACTOR:1.
2.2.6.2.14. Секция 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}
Параметры конфигурации
separator- символ разделителя полей, напримерCSV_PARSER_SEPARATOR:;;quote-char- символ кавычки, напримерCSV_PARSER_QUOTE_CHAR:";escape-char- символ экранирования, напримерCSV_PARSER_ESCAPE_CHAR:';field-as-null- способ определения null поля, напримерCSV_PARSER_FIELD_AS_NULL:EMPTY_SEPARATORS.
Дополнительное описание параметров
Параметр
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»].
2.2.6.2.15. Секция metrics
Секция metrics предназначена для настройки параметров метрик.
Например:
metrics:
port: ${METRICS_PORT:9837}
Параметры конфигурации
port- Порт для метрик, напримерMETRICS_PORT:9837.
2.2.6.2.16. Секция 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}.
2.2.6.2.17. Секция jet-connector
Секция jet-connector предназначена для оптимизации задержек записи данных.
Например:
jet-connector:
use: ${JET_CONNECTOR_USE:false}
kafka-consumer-group-name: ${JET_CONNECTOR_GROUP_NAME:csv-uploader}
kafka-poll-duration-ms: ${JET_POLL_DURATION:200}
kafka-poll-buffer-size: ${JET_POLL_BUFFER:2000}
db-records-buffer-size: ${JET_DB_RECORDS_BUFFER:2000}
Параметры настроек
use- флаг активации jet connector’а, например{JET_CONNECTOR_USE:false};kafka-consumer-group-name- имя консьюмер-группы, загружающей данные, например:{JET_CONNECTOR_GROUP_NAME:csv-uploader};kafka-poll-duration-ms- максимальное время одного прохода вычитки из топика в мс, например:{JET_POLL_DURATION:200};kafka-poll-buffer-size- максимальный размер буфера прочитанных, но еще не загруженных сообщений, например:{JET_POLL_BUFFER:2000};db-records-buffer-size- максимальное количество строк, загружаемых в таблицу за один проход, например:{JET_DB_RECORDS_BUFFER:2000}.
2.2.7. Настройка Агента ПОДД
Порядок установки и описание настроек Агента ПОДД см. в документе: «17514186.СМЭВ-2021-3.О1.РА Руководство администратора ПОДД СМЭВ Часть 1. Агент ПОДД СМЭВ».
Описание формата взаимодействия между Агентом ПОДД и ПОДД-адаптером (название топиков, формат сообщений, схема взаимодействия) описан в документе Спецификация модуля ПОДД-адаптера - Модуль исполнения запросов.
2.2.8. Настройка взаимодействия программы с Агентом ПОДД
После установки программы и Агента ПОДД надо настроить их взаимодействие между собой. Для этого:
Настройте Агента ПОДД и ПОДД-адаптер на работу с одним и тем же брокером сообщения Kafka:
Если вместе с Агентом ПОДД устанавливается брокер сообщений Kafka, а Агент ПОДД преднастроен на работу именно с этим экземпляром брокера сообщений, то укажите адрес этого брокера сообщений в конфигурационном файле ПОДД-адаптера (application.yml), параметр
kafkaUrl.Если вместе с Агентом ПОДД не устанавливается брокер сообщений Kafka, то в Агенте ПОДД согласно его документации настройте работу с брокером сообщений Kafka, установленным с программой. Для этого используйте адрес сервера Kafka из конфигурационного файла ПОДД-адаптера (application.yml), параметр
kafkaUrl.
Настройте названия топиков (см. Таблица 2.5) для обмена сообщениями в конфигурационном файле ПОДД-адаптера (application.yml).
№ |
Назначение |
Настройка |
Значение по умолчанию |
|---|---|---|---|
1 |
Получение запросов |
client.kafka.query.consumer.rqTopicName |
query.rq |
2 |
Ответы на запросы |
client.kafka.query.producer.rsTopicName |
query.rs |
3 |
Ошибки запросов |
client.kafka.query.producer.errTopicName |
query.err |
4 |
Результат запроса оценки |
client.kafka.query.estimateTopicName |
query.query.estimation.rs |
Формат обмена электронными сообщениями с ПОДД-адаптер описан в разделе Спецификация модуля ПОДД-адаптера - Модуль исполнения запросов.