2. Конфигурация СМЭВ4-адаптера - Модуль MPPR (application.yml)
Файл application.yml – основной конфигурационный файл модуля, в котором задана его логика и порядок работы модуля:
получение входящих запросов, их обработка, а также настройка подключения к ядру витрины (секция: prostore), настройка
метрик (секция: metrics), а также другие настройки необходимые для корректной работы адаптера.
2.1. Пример файла application.yml
http-server:
port: ${HTTP_PORT:8085}
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}
timeout: ${SEND_TIMEOUT:30}
delete-topic: ${SEND_DELETE_TOPIC:true}
compress: ${SEND_COMPRESS:none}
prostore-rest-client:
host: ${PS_HOST:localhost}
port: ${PS_PORT:9195}
http:
max-pool-size: ${PS_MAX_POOL_SIZE:10}
prostore:
kafka:
message-limit: ${PS_MESSAGE_LIMIT:1000}
zk-url: ${PS_ZK_KAFKA_URL:localhost:2181}
statusEventTopic:
topic: ${PS_STATUS_EVENT_TOPIC:status.event}
commit-interval: ${kafka.commit-interval}
property:
bootstrap.servers: ${kafka.internal.bootstrap.servers}
group.id: ${kafka.internal.topic.prefix}podd-adapter-mppr-status-event
auto.offset.reset: earliest
enable.auto.commit: false
kafka:
agent.topic.prefix: ${AGENT_TOPIC_PREFIX:}
max-concurrent-handle: ${KAFKA_MAX_CONCURRENT_HANDLE:10}
commit-interval: ${KAFKA_COMMIT_INTERVAL:5s}
external:
bootstrap.servers: ${KAFKA_BOOTSTRAP_SERVERS:localhost:9092}
topic.prefix: ${EXTERNAL_TOPIC_PREFIX:${kafka.agent.topic.prefix}}
internal:
bootstrap.servers: ${PS_KAFKA:localhost:9092}
topic.prefix: ${INTERNAL_TOPIC_PREFIX:${kafka.agent.topic.prefix}}
consumer:
query-request:
topic: ${kafka.internal.topic.prefix}mppr.delegate.rq
max-concurrent-handle: ${kafka.max-concurrent-handle}
commit-interval: ${kafka.commit-interval}
property:
bootstrap.servers: ${kafka.internal.bootstrap.servers}
group.id: ${kafka.internal.topic.prefix}mppr.query.consumer
auto.offset.reset: earliest
enable.auto.commit: false
max.poll.records: 1
max.poll.interval.ms: 600000
delta-request:
topic: ${kafka.internal.topic.prefix}mppr.delta.rq
max-concurrent-handle: ${kafka.max-concurrent-handle}
commit-interval: ${kafka.commit-interval}
property:
bootstrap.servers: ${kafka.internal.bootstrap.servers}
group.id: ${kafka.internal.topic.prefix}mppr.delta.consumer
auto.offset.reset: earliest
enable.auto.commit: false
max.poll.records: 1
max.poll.interval.ms: 600000
download-data:
property:
bootstrap.servers: ${kafka.internal.bootstrap.servers}
group.id: ${kafka.internal.topic.prefix}mppr.x.query.consumer
auto.offset.reset: earliest
enable.auto.commit: false
max.poll.records: 1
producer:
query-result: ${kafka.external.topic.prefix}query.rs
query-error: ${kafka.external.topic.prefix}query.err
delta-result: ${kafka.external.topic.prefix}delta.rs
delta-error: ${kafka.external.topic.prefix}delta.err
property:
bootstrap.servers: ${kafka.external.bootstrap.servers}
internal:
tp-delete-tmp: ${kafka.internal.topic.prefix}tp.delete.tmp
property:
bootstrap.servers: ${kafka.internal.bootstrap.servers}
metrics:
port: ${METRICS_PORT:9843}
logging:
scl.delta:
enabled: ${SCL_DELTA_ENABLED:false}
request-response:
delta-request: ${DELTA_REQUEST_LOG_ENABLED:false}
delta-response: ${DELTA_RESPONSE_LOG_ENABLED:false}
query-request: ${QUERY_REQUEST_LOG_ENABLED:false}
query-response: ${QUERY_RESPONSE_LOG_ENABLED:false}
3. Параметры конфигурации
Настройка конфигурации СМЭВ4-адаптера - Модуль MPPR осуществляется путем редактирования параметров настроек в файле
application.yml, где настраиваются секции:
http-server- указывается порт веб-сервера;environment- указывается название окружения (test,prodи т.д.);executor- предназначена для указания размера пула для запросов;send- настраиваются ограничения на размер загружаемого файла;prostore-rest-client- блок параметров конфигурирования взаимодействия с ProStore;prostore- настройка подключения к серверу и базе данных ProStore;kafka- настройки параметров подключения к шине данных Apache Kafka;metrics- настройка получения метрик;logging- настройки журналирования запросов и ответов;
3.1. Секция http-server
В секции http-server указывается порт веб-сервера.
Например:
http-server:
port: ${HTTP_PORT:8085}
Параметры настроек
port- порт веб-сервера, например:HTTP_PORT:8085.
3.2. Секция environment
В секции environment указывается среда разработки (dev, test, stable, prod)
Например:
environment:
name: ${ENVIRONMENT_NAME:test}
Параметры настроек
name- Название окружения, напримерENVIRONMENT_NAME:test.
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.
3.4. Секция send
В секции send настраиваются ограничения на размер загружаемого файла.
Например:
send:
channel-size: ${SEND_CHANNEL_SIZE:1}
timeout: ${SEND_TIMEOUT:30}
delete-topic: ${SEND_DELETE_TOPIC:true}
compress: ${SEND_COMPRESS:none}
Параметры настроек
channel-size- размер канала на отправку сообщения, напримерSEND_CHANNEL_SIZE:10;timeout- таймаут вычитывания данных из топика (сек), напримерSEND_TIMEOUT:30delete-topic- удаление внешнего топика после выгрузки, напримерSEND_DELETE_TOPIC:true;compress- сжатие выгружаемых сообщений (none или zstd), напримерSEND_COMPRESS:none.
3.5. Секция prostore-rest-client
В секции prostore-rest-client реализован блок параметров конфигурирования взаимодействия с ProStore.
Например:
prostore-rest-client:
host: ${PS_HOST:localhost}
port: ${PS_PORT:9195}
http:
max-pool-size: ${PS_MAX_POOL_SIZE:10}
Параметры настроек
host- адрес ProStore, напримерPS_HOST:localhost;port- порт ProStore, напримерPS_PORT:9195;max-pool-size- максимальное число подключений к ProStore, напримерPS_MAX_POOL_SIZE:10.
3.6. Секция prostore
В секции prostore осуществляется настройка подключения к серверу и базе данных ProStore.
Например:
prostore:
kafka:
message-limit: ${PS_MESSAGE_LIMIT:1000}
zk-url: ${PS_ZK_KAFKA_URL:localhost:2181}
statusEventTopic:
topic: ${PS_STATUS_EVENT_TOPIC:status.event}
commit-interval: ${kafka.commit-interval}
property:
bootstrap.servers: ${kafka.internal.bootstrap.servers}
group.id: ${kafka.internal.topic.prefix}podd-adapter-mppr-status-event
auto.offset.reset: earliest
enable.auto.commit: false
Параметры настроек
message-limit- лимит сообщений, напримерPS_MESSAGE_LIMIT:1000;zk-url- адрес сервера Zookeeper для загрузки данных в ProStore, напримерPS_ZK_KAFKA_URL:localhost:2181.
3.7. Секция kafka
Секция kafka определяет настройки взаимодействия через СМЭВ4-адаптер между Поставщиком данных (producer) и
Получателем данных (consumer).
В секции kafka собраны настройки параметров подключения к шине данных Apache Kafka.
Например:
kafka:
agent.topic.prefix: ${AGENT_TOPIC_PREFIX:}
max-concurrent-handle: ${KAFKA_MAX_CONCURRENT_HANDLE:10}
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.internal.topic.prefix}mppr.delegate.rq
max-concurrent-handle: ${kafka.max-concurrent-handle}
commit-interval: ${kafka.commit-interval}
property:
bootstrap.servers: ${kafka.internal.bootstrap.servers}
group.id: ${kafka.internal.topic.prefix}mppr.query.consumer
auto.offset.reset: earliest
enable.auto.commit: false
max.poll.records: 1
max.poll.interval.ms: 600000
delta-request:
topic: ${kafka.internal.topic.prefix}mppr.delta.rq
max-concurrent-handle: ${kafka.max-concurrent-handle}
commit-interval: ${kafka.commit-interval}
property:
bootstrap.servers: ${kafka.internal.bootstrap.servers}
group.id: ${kafka.internal.topic.prefix}mppr.delta.consumer
auto.offset.reset: earliest
enable.auto.commit: false
max.poll.records: 1
max.poll.interval.ms: 600000
download-data:
property:
bootstrap.servers: ${kafka.internal.bootstrap.servers}
group.id: ${kafka.internal.topic.prefix}mppr.x.query.consumer
auto.offset.reset: earliest
enable.auto.commit: false
max.poll.records: 1
producer:
query-result: ${kafka.external.topic.prefix}query.rs
query-error: ${kafka.external.topic.prefix}query.err
delta-result: ${kafka.external.topic.prefix}delta.rs
delta-error: ${kafka.external.topic.prefix}delta.err
property:
bootstrap.servers: ${kafka.external.bootstrap.servers}
internal:
tp-delete-tmp: ${kafka.internal.topic.prefix}tp.delete.tmp
property:
bootstrap.servers: ${kafka.internal.bootstrap.servers}
Параметры конфигурации
topic- префикс для топиков Агента СМЭВ4, напримерAGENT_TOPIC_PREFIX.
3.8. Секция metrics
Секция metrics предназначена для настройки параметров метрик.
Например:
metrics:
port: ${METRICS_PORT:9843}
Параметры конфигурации
port- порт для метрик, напримерMETRICS_PORT:9843.
3.9. Секция logging
Секция logging предназначена для настройки журналирования запросов и ответов.
Например:
logging:
scl.delta:
enabled: ${SCL_DELTA_ENABLED:false}
request-response:
delta-request: ${DELTA_REQUEST_LOG_ENABLED:false}
delta-response: ${DELTA_RESPONSE_LOG_ENABLED:false}
query-request: ${QUERY_REQUEST_LOG_ENABLED:false}
query-response: ${QUERY_RESPONSE_LOG_ENABLED:false}
LOG_FORMAT - Логирование в формате (JSON/TEXT) - указывается в logback.xml.