Тип сервиса ArtemisProxy#

Сервисы данного типа реализуют взаимодействие с брокером сообщений Artemis MQ с использованием JMS.

В настоящее время поддерживается только взаимодействия в виде точка-точка.

При использовании сервиса поддерживаются следующие варианты взаимодействия:

  • асинхронное http-mq — HTTP запрос, приходящий в сервис ArtemisProxy, преобразуется в сообщение ActiveMQ и помещается в очередь, после чего клиенту возвращается HTTP ответ (успешный или содержащий ошибку);

  • синхронное http-mq — HTTP запрос, приходящий в сервис ArtemisProxy, преобразуется в сообщение ActiveMQ и помещается в очередь, после чего ожидается получение сообщения из очереди, которая указана как очередь ответов. После получения ответа, он трансформируется в HTTP протокол и отправляется клиенту;

  • асинхронный mq-http — сервис ожидает сообщения в очереди, указанной в качестве параметра. После получения сообщения, оно трансформируется в HTTP запрос и отправляется на сервис, указанный в качестве параметра;

  • синхронный mq-http — сервис ожидает сообщения в очереди, указанной в качестве параметра. После получения сообщения, оно трансформируется в HTTP запрос и отправляется на сервис, указанный в качестве параметра. Далее ожидается ответ от сервиса, после чего он трансформируется в сообщение и помещается в очередь, которая указана как очередь ответов.

В каждом сервисе ArtemisProxy одновременно может быть использован только один вариант взаимодействия.

В контексте service объявляется тип сервиса, соответствующий service_artemis_proxy:

service:
  service_artemis_proxy:

Название

Обязательность

Описание

Возможные значения

Значение по умолчанию

id

Обязательный

Идентификатор сервиса в контексте всего профиля. Используется, например, в названии директории и других системных файлах. Значение должно быть уникальным

Текстовое значение (строка, число или их комбинация, разделитель — «_»)

—

name

Опциональный

Технологическое название сервиса, используемое для идентификации сервиса в логах транзакций. Значение должно быть уникальным

Текстовое значение

Значение задается пользователем

trust_store

Обязательный (если artemis_sowa/from/ssl_enabled или sowa_artemis/to/ssl_enabled равны true)

Путь к файлу, хранилищу доверенных сертификатов в формате JKS. Игнорируется, если ssl_options/trust_all равно true. Может использоваться путь к секрету в Vault

Текстовое значение

Значение задается пользователем

key_store

Обязательный (если artemis_sowa/from/ssl_enabled или sowa_artemis/to/ssl_enabled равны true)

Путь к файлу, хранилищу ключей в формате JKS. Может использоваться путь к секрету в Vault

Текстовое значение

Значение задается пользователем

secrets

Обязательный (если trust_store или key_store определены)

Путь к файлу с секретами (artemis.user, artemis.password, truststore.pass, keystore.pass). Может использоваться путь к секрету в Vault

Текстовое значение

Значение задается пользователем

artemis_sowa

Обязательный (если не определен sowa_artemis)

Определяет вариант взаимодействия artemis-http. Может быть задан только если не определен sowa_artemis

Последовательность параметров и их значения

—

artemis_sowa.from

Обязательный (в рамках artemis_sowa)

Параметры чтения из Artemis

Последовательность параметров и их значения

—

artemis_sowa.from.brokers

Обязательный (в рамках from)

Список адресов брокеров (в виде ip-адрес:порт или dn:порт)

Последовательность текстовых значений

—

artemis_sowa.from.queue

Обязательный (в рамках from)

Имя очереди для вычитки сообщений

Текстовое значение

—

artemis_sowa.from.ssl_enabled

Опциональный (в рамках from)

Признак установки SSL-соединения

Булево значение

false

artemis_sowa.from.ssl_options

Обязательный (если ssl_enabled: true)

Параметры ssl соединения

Последовательность параметров и их значения

—

artemis_sowa.from.ssl_options.trust_all

Опциональный (в рамках ssl_options)

Отключает проверку предъявляемых брокером сертификатов. Не рекомендуется в продукционном окружении

Булево значение

false

artemis_sowa.from.ssl_options.verify_host

Опциональный (в рамках ssl_options)

Включает проверку соответствия dn-имени сервера брокера, указанному в предъявляемом сертификате

Булево значение

false

artemis_sowa.from.ssl_options.enabled_cipher_suites

Обязательный (в рамках ssl_options)

Набор поддерживаемых криптографических алгоритмов

Текстовое значение

—

artemis_sowa.from.ssl_options.enabled_protocols

Обязательный (в рамках ssl_options)

Набор поддерживаемых криптографических протоколов передачи данных

Текстовое значение

TLS 1.2

artemis_sowa.from.consumers_amount

Обязательный (в рамках from)

Количество одновременно запускаемых consumer для вычитки сообщений из очереди

Целочисленное значение

—

artemis_sowa.from.jms_type

Обязательный (в рамках from)

Тип обрабатываемых сообщений

Text, Bytes

Определяется автоматически

artemis_sowa.from.reply

Опциональный (в рамках from)

Параметры синхронного взаимодействия

Последовательность параметров и их значения

—

artemis_sowa.from.reply.queue

Обязательный (в рамках reply)

Имя очереди сообщений для отправленния преобразованного HTTP ответа

Текстовое значение

—

artemis_sowa.from.reply.restricted_return_codes

Опциональный (в рамках reply)

Список HTTP статусов ответов для генерации сообщения в очередь ответов

Последовательность текстовых значений

200

artemis_sowa.from.reply.remove_headers_pattern

Опциональный (в рамках reply)

Регулярное выражение для удаления заголовков перед отправкой в очередь

Текстовое значение

—

artemis_sowa.from.reply.jms_type

Опциональный (в рамках reply)

Формат сообщений при использовании reply

Text, Bytes

—

artemis_sowa.from.failover_options

Опциональный (в рамках from)

Настройки переподключения к брокеру при ошибках соединения

Последовательность параметров и их значения

—

artemis_sowa.from.failover_options.initial_connect_attempts

Опциональный (в рамках failover_options)

Количество попыток при первоначальном подключении к брокеру

Целочисленное значение

0

artemis_sowa.from.failover_options.failover_on_initial_connection

Опциональный (в рамках failover_options)

Подключение к backup серверу при ошибке первоначального соединения

Булево значение

false

artemis_sowa.from.failover_options.reconnect_attempts

Опциональный (в рамках failover_options)

Количество попыток установки соединения перед фиксацией ошибки

Целочисленное значение

-1 (без ограничений)

artemis_sowa.from.failover_options.retry_interval

Опциональный (в рамках failover_options)

Интервал в миллисекундах между попытками установки соединения

Целочисленное значение

2000

artemis_sowa.from.failover_options.retry_interval_multiplier

Опциональный (в рамках failover_options)

Множитель для скользящего увеличения интервала попыток

Число с плавающей точкой

1.0

artemis_sowa.from.discovery_options

Опциональный (в рамках from)

Настройки дискаверинга HA-кластера

Последовательность параметров и их значения

—

artemis_sowa.from.discovery_options.ha

Опциональный (в рамках discovery_options)

Отслеживание изменений топологии HA-кластера

Булево значение

false

artemis_sowa.from.discovery_options.use_topology_for_load_balancing

Опциональный (в рамках discovery_options)

Использование топологии кластера для балансировки соединений

Булево значение

true

artemis_sowa.from.core_options

Опциональный (в рамках from)

Настройки обмена сетевыми пакетами при соединении с брокером

Последовательность параметров и их значения

—

artemis_sowa.from.core_options.connection_ttl

Опциональный (в рамках core_options)

Время в миллисекундах до разрыва соединения при отсутствии PING-пакетов

Целочисленное значение

60000

artemis_sowa.from.core_options.confirmation_window_size

Опциональный (в рамках core_options)

Размер буфера повторного выполнения команд для восстановления сессий

Целочисленное значение

-1 (отключено)

artemis_sowa.from.core_options.client_failure_check_period

Опциональный (в рамках core_options)

Интервал проверки dead соединений. Значение -1 отключает проверку

Целочисленное значение

30000

artemis_sowa.to

Обязательный (в рамках artemis_sowa)

Параметры отправки в SOWA

Последовательность параметров и их значения

—

artemis_sowa.to.remove_headers_pattern

Опциональный (в рамках to)

Регулярное выражение для удаления заголовков перед отправкой в SOWA

Текстовое значение

—

artemis_sowa.to.service_id

Обязательный (в рамках to)

Идентификатор сервиса профиля для отправки HTTP запросов

Текстовое значение

—

artemis_sowa.to.service_type

Обязательный (в рамках to)

Тип сервиса профиля для отправки HTTP-запросов

Текстовое значение

—

artemis_sowa.to.service_url

Опциональный (в рамках to)

URL сервиса для отправки HTTP запросов

Текстовое значение

Автогенерируемое значение из service_id

artemis_sowa.to.timeout

Опциональный (в рамках to)

Таймаут в миллисекундах на отправку HTTP запроса

Целочисленное значение

10000

artemis_sowa.to.content_type

Опциональный (в рамках to)

Значение заголовка Content-Type отправляемого HTTP-запроса

Текстовое значение

—

sowa_artemis

Обязательный (если не определен artemis_sowa)

Определяет маршрут взаимодействия http-artemis mq. Может быть определен только если не определен artemis_sowa

Последовательность параметров и их значения

—

sowa_artemis.from

Опциональный (в рамках sowa_artemis)

Параметры чтения из HTTP

Последовательность параметров и их значения

—

sowa_artemis.from.remove_headers_pattern

Опциональный (в рамках from)

Регулярное выражение для удаления заголовков перед отправкой в SOWA

Текстовое значение

—

sowa_artemis.to

Обязательный (в рамках sowa_artemis)

Параметры отправки в Artemis

Последовательность параметров и их значения

—

sowa_artemis.to.brokers

Обязательный (в рамках to)

Список брокеров для отправки сообщений (ip:порт или dn:порт)

Последовательность текстовых значений

—

sowa_artemis.to.queue

Обязательный (в рамках to)

Имя очереди для отправки сообщений

Текстовое значение

—

sowa_artemis.to.jms_type

Обязательный (в рамках to)

Тип содержимого сообщения

Text, Bytes

Определяется автоматически

sowa_artemis.to.ssl_enabled

Опциональный (в рамках to)

Признак установки SSL-соединения

Булево значение

false

sowa_artemis.to.ssl_options

Обязательный (если ssl_enabled: true)

Параметры ssl соединения

Последовательность параметров и их значения

—

sowa_artemis.to.ssl_options.trust_all

Опциональный (в рамках ssl_options)

Отключает проверку предъявляемых брокером сертификатов

Булево значение

false

sowa_artemis.to.ssl_options.verify_host

Опциональный (в рамках ssl_options)

Включает проверку соответствия dn-имени сервера брокера

Булево значение

false

sowa_artemis.to.ssl_options.enabled_cipher_suites

Обязательный (в рамках ssl_options)

Набор поддерживаемых криптографических алгоритмов

Текстовое значение

—

sowa_artemis.to.ssl_options.enabled_protocols

Обязательный (в рамках ssl_options)

Набор поддерживаемых криптографических протоколов

Текстовое значение

TLS 1.2

sowa_artemis.to.failover_options

Опциональный (в рамках to)

Настройки переподключения к брокеру

Последовательность параметров и их значения

—

sowa_artemis.to.failover_options.initial_connect_attempts

Опциональный (в рамках failover_options)

Количество попыток при первоначальном подключении

Целочисленное значение

0

sowa_artemis.to.failover_options.failover_on_initial_connection

Опциональный (в рамках failover_options)

Подключение к backup серверу при ошибке

Булево значение

false

sowa_artemis.to.failover_options.reconnect_attempts

Опциональный (в рамках failover_options)

Количество попыток установки соединения

Целочисленное значение

-1

sowa_artemis.to.failover_options.retry_interval

Опциональный (в рамках failover_options)

Интервал между попытками в миллисекундах

Целочисленное значение

2000

sowa_artemis.to.failover_options.retry_interval_multiplier

Опциональный (в рамках failover_options)

Множитель для увеличения интервала попыток

Число с плавающей точкой

1.0

sowa_artemis.to.discovery_options

Опциональный (в рамках to)

Настройки discovery HA-кластера

Последовательность параметров и их значения

—

sowa_artemis.to.discovery_options.ha

Опциональный (в рамках discovery_options)

Отслеживание изменений топологии HA-кластера

Булево значение

false

sowa_artemis.to.discovery_options.use_topology_for_load_balancing

Опциональный (в рамках discovery_options)

Использование топологии для балансировки

Булево значение

true

sowa_artemis.to.core_options

Опциональный (в рамках to)

Настройки обмена сетевыми пакетами

Последовательность параметров и их значения

—

sowa_artemis.to.core_options.connection_ttl

Опциональный (в рамках core_options)

Время до разрыва соединения при отсутствии PING

Целочисленное значение

60000

sowa_artemis.to.core_options.confirmation_window_size

Опциональный (в рамках core_options)

Размер буфера для восстановления сессий

Целочисленное значение

-1

sowa_artemis.to.core_options.client_failure_check_period

Опциональный (в рамках core_options)

Интервал проверки dead соединений

Целочисленное значение

30000

sowa_artemis.to.remove_headers_pattern

Опциональный (в рамках to)

Регулярное выражение для удаления заголовков перед отправкой в очередь

Текстовое значение

—

sowa_artemis.to.reply

Опциональный (в рамках to)

Параметры вычитки из очереди ответных сообщений

Последовательность параметров и их значения

—

sowa_artemis.to.reply.queue

Обязательный (в рамках reply)

Имя очереди для сообщений от внешнего сервиса

Текстовое значение

—

sowa_artemis.to.reply.timeout

Обязательный (в рамках reply)

Время ожидания ответа от внешнего сервиса

Целочисленное значение

—

ArtemisProxy - optional#

Название

Обязательность

Описание

Возможные значения

Значение по умолчанию

jvm_options

Опциональный

Дополнительные параметры запуска Java VM для указанного профиля

Последовательность текстовых значений

—

input_charset

Опциональный

Кодировка входящих значений

Текстовое значение

UTF-8

output_charset

Опциональный

Кодировка исходящих сообщений

Текстовое значение

UTF-8

log_level

Опциональный

Уровень логирования

ALL, DEBUG, INFO, WARN, ERROR, FATAL, OFF, TRACE

ALL

event_hook

Опциональный

Протоколирование событий

Последовательность параметров и их значения

—

event_hook.stage

Обязательный (в рамках event_hook)

Стадии протоколирования

client_request, client_response, upstream_request, upstream_response

—

event_hook.log_body

Обязательный (в рамках event_hook)

Логирование тела сообщения

Булево значение

—

event_hook.log_headers

Обязательный (в рамках event_hook)

Логирование заголовков сообщений

Булево значение

—

access_log

Опциональный

Параметры журналов доступа

Последовательность параметров и их значения

—

access_log.max_file_size

Опциональный (в рамках access_log)

Максимальный размер файла лога

Текстовое значение

—

access_log.max_history

Опциональный (в рамках access_log)

Максимальное количество исторических файлов

Целочисленное значение

—

access_log.total_size_cap

Опциональный (в рамках access_log)

Общий лимит размера файлов лога

Текстовое значение

—

error_log

Опциональный

Параметры журналов ошибок

Последовательность параметров и их значения

—

error_log.max_file_size

Опциональный (в рамках error_log)

Максимальный размер файла лога

Текстовое значение

—

error_log.max_history

Опциональный (в рамках error_log)

Максимальное количество исторических файлов

Целочисленное значение

—

error_log.total_size_cap

Опциональный (в рамках error_log)

Общий лимит размера файлов лога

Текстовое значение

—

connection_pool

Опциональный

Настройки пула соединений с Artemis MQ. Используется только для sowa_artemis

Последовательность параметров и их значения

—

connection_pool.enabled

Опциональный (в рамках connection_pool)

Вкл./Откл. пул соединений

Булево значение

true

connection_pool.max_connections

Опциональный (в рамках connection_pool)

Максимальное количество соединений

Целочисленное значение

1

connection_pool.max_sessions_per_connection

Опциональный (в рамках connection_pool)

Максимальное количество сессий на соединение

Целочисленное значение

500

connection_pool.connection_idle_timeout

Опциональный (в рамках connection_pool)

Таймаут неактивного соединения

Целочисленное значение

30000

thread_pool

Опциональный

Настройки потоков обработки на стороне клиента

Последовательность параметров и их значения

—

thread_pool.scheduled_thread_pool_max_size

Опциональный (в рамках thread_pool)

Максимальный размер пула потоков

Целочисленное значение

—