2. Конфигурация модуля ПОДД-адаптер – Модуль группировки данных табличных параметров (application.yml)

Файл application.yml – основной конфигурационный файл модуля, в котором задана его логика и порядок работы модуля.

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

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

http-server:
  port: ${HTTP_PORT:8092}

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:${kafka.agent.topic.prefix}}
  internal:
    bootstrap.servers: ${PS_KAFKA:localhost:9092}
    topic.prefix: ${INTERNAL_TOPIC_PREFIX:${kafka.agent.topic.prefix}}
  # параметры консьюмера сообщений
  consumer:
    bootstrap.servers: ${kafka.internal.bootstrap.servers}
    # Смещение при первом запуске приложения
    auto.offset.reset: earliest
  # параметры продъюсера сообщений
  producer:
    bootstrap.servers: ${kafka.internal.bootstrap.servers}
  # Параметры администрирования. Используется для health-check
  admin:
    bootstrap.servers: ${kafka.internal.bootstrap.servers}

group:
  data-topic-prefix: ${DATA_TOPIC_PREFIX:tp.data}
  # Время пересоздания kafka producer, в минутах
  refreshPeriod: ${DATA_PRODUCER_RECREATE_PERIOD:3m}

# блок настроек группировки данных табличных параметров
query:
  data-topic-prefix: ${DATA_TOPIC_PREFIX:tp.data}
  # топик с данными табличных параметров
  data-topic: ${kafka.external.topic.prefix:}query.tp
  # топик нотификаций на загрузку табличных параметров
  notification-topic: ${kafka.internal.topic.prefix:}tp.upload.query
  # блок настроек отмены запросов
  cancel:
    # топик запросов на отмену исполнения
    request-topic: ${kafka.external.topic.prefix:}cancel.rq
    # настройки кеша отмененных запросов
    cache:
      # начальный размер кеша
      initial-capacity: 10000
      # время вытеснения из кеша
      expire-after-access: 60m
  # дополнительные параметры консьюмера запросов
  consumer-properties:
    bootstrap.servers: ${kafka.external.bootstrap.servers}
    group.id: ${kafka.external.topic.prefix}group.tp.consumer
  # дополнительные параметры продъюсера ответов
  producer-properties:
    bootstrap.servers: ${kafka.internal.bootstrap.servers}

delta:
  table-params:
    # топик с данными табличных параметров
    data-topic: ${kafka.external.topic.prefix}delta.tp
    # топик нотификаций на загрузку табличных параметров
    notification-topic: ${kafka.internal.topic.prefix}tp.upload.delta
    # топик с ошибками обработки
    error-topic: ${kafka.internal.topic.prefix}tp.upload.err
    # дополнительные параметры консьюмера запросов
    consumer-properties:
      bootstrap.servers: ${kafka.external.bootstrap.servers}
      group.id: ${kafka.external.topic.prefix}delta.tp.consumer
    # дополнительные параметры продъюсера ответов
    producer-properties:
      bootstrap.servers: ${kafka.internal.bootstrap.servers}
  result:
    # топик с данными
    data-topic: ${kafka.external.topic.prefix}delta.in.tp
    # топик нотификаций на загрузку табличных параметров
    notification-topic: ${kafka.internal.topic.prefix}tp.upload.delta.in
    # топик с ошибками обработки
    error-topic: ${kafka.internal.topic.prefix}tp.upload.in.err
    # дополнительные параметры консьюмера запросов
    consumer-properties:
      bootstrap.servers: ${kafka.external.bootstrap.servers}
      group.id: ${kafka.external.topic.prefix}delta.in.tp.consumer
    # дополнительные параметры продъюсера ответов
    producer-properties:
      bootstrap.servers: ${kafka.internal.bootstrap.servers}

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:86400000}
  chroot: ${ZOOKEEPER_DS_CHROOT:/adapter}

metrics:
  # Порт сервера для получения метрик
  port: ${METRICS_PORT:9843}
  kafkaAdminClientName: kafkaAdminClient

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

Настройка конфигурации ПОДД-адаптера – Модуль группировки данных табличных параметров осуществляется путем редактирования параметров настроек в файле application.yml, где настраиваются секции:

  • kafkaUrl – адрес сервера Kafka для Агента СМЭВ4;

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

  • kafka – настройки сервера Kafka;

  • group - настройка публикации сгруппированных чанков табличных параметров;

  • query - блок настроек группировки данных табличных параметров;

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

  • environment - название окружения (test, prod и т.д.);

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

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

3.1. Секция http-server

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

Например:

http:
  port: ${HTTP_PORT:8092}

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

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

3.2. Секция kafka

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

Например:

kafka:
  # максимальное количество обработчиков входящих запросов
  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:
    bootstrap.servers: ${kafka.internal.bootstrap.servers}
    # Смещение при первом запуске приложения
    auto.offset.reset: earliest
  # параметры продюсера сообщений
  producer:
    bootstrap.servers: ${kafka.internal.bootstrap.servers}
  # Параметры администрирования. Используется для health-check
  admin:
    bootstrap.servers: ${kafka.internal.bootstrap.servers}

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

  • max-concurrent-handle - максимальное количество обработчиков входящих запросов, например {KAFKA_MAX_CONCURRENT_HANDLE:1000};

  • commit-interval - периодичность фиксации оффсета обработанных сообщений, например {KAFKA_COMMIT_INTERVAL:5s};

  • eventLoopPool - размер пула event loop. например VERTX_POOL_EVENTLOOPPOOL:10;

  • internal - настройка количества определяется адрес сервера Kafka и префикс топика;

  • consumer - параметры потребителя сообщений;

  • producer - параметры поставщика сообщений.

3.3. Секция group

Секция group отвечает за публикацию сгруппированных чанков табличных параметров.

group:
  data-topic-prefix: ${DATA_TOPIC_PREFIX:tp.data}
  # Время пересоздания kafka producer, в минутах
  refreshPeriod: ${DATA_PRODUCER_RECREATE_PERIOD:3m}

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

  • refreshPeriod - Время пересоздания kafka producer, в минутах.

3.4. Секция query

Секция query предназначена для настроек группировки данных табличных параметров.

Например:

query:
  data-topic-prefix: ${DATA_TOPIC_PREFIX:tp.data}
  # топик с данными табличных параметров
  data-topic: ${kafka.external.topic.prefix:}query.tp
  # топик нотификаций на загрузку табличных параметров
  notification-topic: ${kafka.internal.topic.prefix:}tp.upload.query
  # блок настроек отмены запросов
  cancel:
    # топик запросов на отмену исполнения
    request-topic: ${kafka.external.topic.prefix:}cancel.rq
    # настройки кеша отмененных запросов
    cache:
      # начальный размер кеша
      initial-capacity: 10000
      # время вытеснения из кеша
      expire-after-access: 60m
  # дополнительные параметры консьюмера запросов
  consumer-properties:
    bootstrap.servers: ${kafka.external.bootstrap.servers}
    group.id: ${kafka.external.topic.prefix}group.tp.consumer
  # дополнительные параметры продъюсера ответов
  producer-properties:
    bootstrap.servers: ${kafka.internal.bootstrap.servers}

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

  • data-topic - топик с данными табличных параметров;

  • notification-topic - топик нотификаций на загрузку табличных параметров;

  • cancel - блок настроек отмены запросов;

  • request-topic - Время пересоздания kafka producer, в минутах;

  • cache - настройки кеша отмененных запросов;

  • initial-capacity – начальный размер кеша;

  • expire-after-access - время вытеснения из кеша;

  • consumer-properties - дополнительные параметры потребителя запросов;

  • producer-properties - дополнительные параметры поставщика ответов.

3.5. Секция delta

В секции delta указываются настройки группировки дельт.

Например:

delta:
  table-params:
    # топик с данными табличных параметров
    data-topic: ${kafka.external.topic.prefix}delta.tp
    # топик нотификаций на загрузку табличных параметров
    notification-topic: ${kafka.internal.topic.prefix}tp.upload.delta
    # топик с ошибками обработки
    error-topic: ${kafka.internal.topic.prefix}tp.upload.err
    # дополнительные параметры консьюмера запросов
    consumer-properties:
      bootstrap.servers: ${kafka.external.bootstrap.servers}
      group.id: ${kafka.external.topic.prefix}delta.tp.consumer
    # дополнительные параметры продьюсера ответов
    producer-properties:
      bootstrap.servers: ${kafka.internal.bootstrap.servers}
  result:
    # топик с данными
    data-topic: ${kafka.external.topic.prefix}delta.in.tp
    # топик нотификаций на загрузку табличных параметров
    notification-topic: ${kafka.internal.topic.prefix}tp.upload.delta.in
    # топик с ошибками обработки
    error-topic: ${kafka.internal.topic.prefix}tp.upload.in.err
    # дополнительные параметры консьюмера запросов
    consumer-properties:
      bootstrap.servers: ${kafka.external.bootstrap.servers}
      group.id: ${kafka.external.topic.prefix}delta.in.tp.consumer
    # дополнительные параметры продъюсера ответов
    producer-properties:
      bootstrap.servers: ${kafka.internal.bootstrap.servers}

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

  • data-topic - топик с данными табличных параметров;

  • notification-topic - топик нотификаций на загрузку табличных параметров;

  • error-topic - топик с ошибками обработки;

  • consumer-properties - дополнительные параметры потребителя запросов;

  • producer-properties - дополнительные параметры поставщика ответов.

3.6. Секция environment

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

Например:

environment:
  name: ${ENVIRONMENT_NAME:test}

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

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

3.7. Секция zookeeper

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

Например:

zookeeper:
  connection-string: ${ZOOKEEPER_DS_ADDRESS:t5-adsp-01.ru-central1.internal}
  connection-timeout-ms: ${ZOOKEEPER_DS_CONNECTION_TIMEOUT_MS:30000}
  session-timeout-ms: ${ZOOKEEPER_DS_SESSION_TIMEOUT_MS:86400000}
  chroot: ${ZOOKEEPER_DS_CHROOT:/adapter}

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

  • connection-string - подключение к Zookeeper DS, например ZOOKEEPER_DS_ADDRESS:t5-adsp-01.ru-central1.internal;

  • connection-timeout-ms - Zookeeper DS таймаут подключения, например ZOOKEEPER_DS_CONNECTION_TIMEOUT_MS:30000;

  • session-timeout-ms - Zookeeper DS таймаут сессии, например ZOOKEEPER_DS_SESSION_TIMEOUT_MS:86400000;

  • chroot - Zookeeper DS chroot path, например ZOOKEEPER_DS_CHROOT:/adapter.

3.8. Секция metrics

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

Например:

metrics:
  # Порт сервера для получения метрик
  port: ${METRICS_PORT:9843}
  kafkaAdminClientName: kafkaAdminClient

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

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