Тип сервиса 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

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

    Значение параметра id должно быть уникальным.

    Идентификатор может быть строкой, числом, или их комбинацией. В качестве разделителя слов необходимо использовать знак нижнее подчеркивание «_».

    Тип параметра: текстовое значение.

  • name

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

    Значение параметра name должно быть уникальным.

    Тип параметра: текстовое значение.

    По умолчанию: значение задается пользователем.

  • trust_store

    Путь к файлу, хранилищу доверенных сертификатов в формате JKS.

    Обязательность: обязателен в случае если значения параметров artemis_sowa/from/ssl_enabled или sowa_artemis/to/ssl_enabled равны true.

    Тип параметра: текстовое значение.

    По умолчанию: значение задается пользователем.

    Примечание: хранилище игнорируется в том случае, если artemis_sowa/from/ssl_options/trustAll или sowa_artemis/to/ssl_options/trustAll равны true. В качестве пути может использоваться путь к секрету в Vault.

  • key_store

    Путь к файлу, хранилищу ключей в формате JKS.

    Обязательность: обязателен в случае если значения параметров artemis_sowa/from/ssl_enabled или sowa_artemis/to/ssl_enabled равны true.

    Тип параметра: текстовое значение.

    По умолчанию: значение задается пользователем.

    Примечание: В качестве пути может использоваться путь к секрету в Vault.

  • secrets

    Путь к файлу с секретами.

    Обязательность: обязателен в случае если значения параметров trust_store или key_store определены.

    Тип параметра: текстовое значение.

    По умолчанию: значение задается пользователем.

    Примечание: В файле с секретами должны содержаться параметры:

    • artemis.user — имя пользователя для установления соединения с брокером. Указывается, если используется аутентификация по имени пользователя и паролю.

    • artemis.password — пароль пользователя для установления соединения с брокером. Указывается, если используется аутентификация по имени пользователя и паролю.

    • truststore.pass — пароль от хранилища указанного в параметре trust_store.

    • keystore.pass — пароль от хранилища указанного в параметре key_store.

    Примечание: В качестве пути может использоваться путь к секрету в Vault.

  • artemis_sowa

    Параметр artemis_sowa является обязательным, если не определен параметр sowa_artemis.

    Параметр может быть задан, только если не определен параметр sowa_artemis.

    Данный параметр определяет использование варианта взаимодействия artemis-http.

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

    По умолчанию: не имеет значения по умолчанию.

    • from

      Параметр from является обязательным.

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

      По умолчанию: значение задается пользователем.

      • brokers

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

        Параметр brokers является обязательным.

        Тип параметра: последовательность текстовых значений.

        По умолчанию: значение задается пользователем.

      • queue

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

        Параметр queue является обязательным.

        Тип параметра: текстовое значение.

        По умолчанию: значение задается пользователем.

      • ssl_enabled

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

        Тип параметра: булево значение.

        По умолчанию: false.

      • ssl_options

        Группа параметров, определяющих параметры ssl соединения.

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

        Обязателен в случае, если значение параметра ssl_enabled имеет значение true.

        Список параметров группы:

        • trust_all

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

          Тип параметра: булево значение.

          По умолчанию: false.

        • verify_host

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

          Тип параметра: булево значение.

          По умолчанию: false.

        • enabled_cipher_suites

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

          Параметр enabled_cipher_suites является обязательным.

          Тип параметра: текстовое значение.

          По умолчанию: значение задается пользователем.

        • enabled_protocols

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

          Параметр enabled_protocols является обязательным.

          Тип параметра: текстовое значение.

          По умолчанию: TLS 1.2.

      • consumers_amount

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

        Параметр consumers_amount является обязательным.

        Тип параметра: целочисленное значение.

        По умолчанию: значение задается пользователем.

      • jms_type

        Тип обрабатываемых сообщений (текстовые/бинарные).

        Параметр jms_type является обязательным.

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

        - Text;
        - Bytes.
        

        По умолчанию: определяется автоматически на основании параметров сообщения.

      • reply

        Определяет параметры синхронного взаимодействия.

        Тип параметра: последовательность текстовых значений.

        По умолчанию: значение задается пользователем.

        • queue

          Имя очереди сообщений, в которую будет отправлен преобразованный HTTP ответ от внешнего сервиса.

          Параметр queue является обязательным.

          Тип параметра: текстовое значение.

        • restricted_return_codes

          Тип параметра: последовательность текстовых значений.

          Определяет список HTTP статусов ответов, по которым будет сгенерировано сообщение для помещения в очередь ответов. По умолчанию в очередь будут отправлены только ответы с 200 кодом.

        • remove_headers_pattern

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

          Тип параметра: текстовое значение.

        • jms_type

          Задается формат сообщений при использовании параметра reply (текстовые/бинарные).

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

          • Text;

          • Bytes.

      • ssl_enabled

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

        Тип параметра: булево значение.

        По умолчанию: false

      • ssl_options

        Группа параметров, определяющих параметры ssl соединения.

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

        Обязателен в случае, если значение параметра ssl_enabled имеет значение true.

        Список параметров группы:

        • trust_all

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

          Тип параметра: булево значение.

          По умолчанию: false.

        • verify_host

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

          Тип параметра: булево значение.

          По умолчанию: false.

        • enabled_cipher_suites

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

          Параметр enabled_cipher_suites является обязательным.

          Тип параметра: текстовое значение.

          По умолчанию: значение задается пользователем.

        • enabled_protocols

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

          Параметр enabled_protocols является обязательным.

          Тип параметра: текстовое значение.

          По умолчанию: TLS 1.2.

      • failover_options

        Группа параметров, определяющих настройки переподключения к брокеру в случае ошибок соединения.

        Тип параметра: последовательность текстовых значений.

        По умолчанию: задается пользователем

        • initial_connect_attempts

          Определяет количество попыток, которые будут предприняты при первоначальном подключении к брокеру перед первым успешным соединением и перед тем, как клиент начнет обозревать топологию кластера.

          Значение по умолчанию: 0, только одна попытка доступна.

          Тип параметра: целое значение

        • failover_on_initial_connection

          Определяет, будет ли клиент подключаться к backup серверу, если попытка первоначального соединения завершилась с ошибкой.

          Тип параметра: булево значение.

          По умолчанию: false

        • reconnect_attempts

          Определяет количество попыток установки соединения перед тем, как будет зафиксирована ошибка соединения.

          Тип параметра: целочисленное значение.

          По умолчанию: -1, количество попыток не ограничено.

        • retry_interval

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

          Тип параметра: целочисленное значение.

          По умолчанию: 2000.

        • retry_interval_multiplier

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

          Тип параметра: число с плавающей точкой.

          По умолчанию: 1.0.

        • discovery_options

        Группа параметров, определяющая настройки дискаверинга HA-кластера.

        Тип параметра: последовательность значений.

        Группа имеет следующие параметры:

        • ha

          Определяет, будут ли отслеживаться изменения топологии HA-кластера. В случае, если значение выставлено в true, кластер использует указанные адреса брокеров в параметре brokers только для начального подключения. Все дальнейшие изменения и список failover брокеров он будет принимать через уведомления из текущего соединения с брокером.

          Тип значения: булево значение.

          По умолчанию: false.

        • use_topology_for_load_balancing

          Определяет, использовать ли топологию кластера для балансировки соединений.

          Тип значения: булево значение.

          По умолчанию: true

      • core_options

        Группа параметров, определяющих настройки обмена сетевыми пакетами при соединении с брокером.

        Тип параметра: последовательность текстовых значений.

        По умолчанию: задается пользователем

        • connection_ttl

          Определяет время (в миллисекундах), по истечении которого, если брокер не отправляет PING-пакеты, соединение будет считаться разорванным.

          Тип параметра: целочисленное значение.

          По умолчанию: 60000

        • confirmation_window_size

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

          Тип параметра: целочисленное значение

          По умолчанию: -1, автоматическое восстановление сессии при повторной установке соединения отключено.

        • client_failure_check_period

          Определяет интервал проверки dead соединений.

          Тип параметра: целочисленное значение.

          По умолчанию: 30000.

          Примечание: установление значения в -1 отключает проверку.

    • to

      Параметр to является обязательным.

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

      По умолчанию: значение задается пользователем.

      • remove_headers_pattern

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

        Тип параметра: текстовое значение.

      • service_id

        Идентификатор сервиса профиля, куда будут отправляться HTTP запросы.

        Параметр service_id является обязательным.

        Тип параметра: текстовое значение.

      • service_type

        Тип сервиса профиля, куда будут отправляться HTTP-запросы.

        Параметр service_type является обязательным.

        Тип параметра: текстовое значение.

      • service_url

        URL сервиса, на который будут отправлять HTTP запросы.

        Тип параметра: текстовое значение.

        По умолчанию: автоматически сгенерированное значение соответствующее url сервиса, указанного в параметре service_id.

      • timeout

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

        Тип параметра: целочисленное значение.

        По умолчанию:

        timeout: 10000
        
      • content_type

        Значение, которое будет устанавливаться в заголовок Content-Type отправляемого HTTP-запроса.

        Тип параметра: текстовое значение.

  • sowa_artemis

    Определяет маршрут взаимодействия http-artemis mq.

    Может быть определен, только если не определен параметр artemis_sowa.

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

    По умолчанию: не имеет значения по умолчанию.

    • from

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

      По умолчанию: значение задается пользователем.

      • remove_headers_pattern

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

        Тип параметра: текстовое значение.

    • to

      Параметр to является обязательным.

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

      По умолчанию: значение задается пользователем.

      • brokers

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

        Параметр brokers является обязательным.

        Тип параметра: последовательность текстовых значений.

        По умолчанию: значение задается пользователем.

      • queue

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

        Параметр queue является обязательным.

        Тип параметра: текстовое значение.

        По умолчанию: значение задается пользователем.

      • jms_type

        Определяет тип содержимого сообщения (текстовый или бинарный).

        Параметр jms_type является обязательным.

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

        - Text;
        - Bytes.
        

        По умолчанию: определяется автоматически.

      • ssl_enabled

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

        Тип параметра: булево значение.

        По умолчанию: false.

      • ssl_options

        Группа параметров, определяющих параметры ssl соединения.

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

        Обязателен в случае, если значение параметра ssl_enabled имеет значение true.

        Список параметров группы:

        • trust_all

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

          Тип параметра: булево значение.

          По умолчанию: false.

        • verify_host

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

          Тип параметра: булево значение.

          По умолчанию: false.

        • enabled_cipher_suites

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

          Параметр enabled_cipher_suites является обязательным.

          Тип параметра: текстовое значение.

          По умолчанию: значение задается пользователем.

        • enabled_protocols

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

          Параметр enabled_protocols является обязательным.

          Тип параметра: текстовое значение.

          По умолчанию: TLS 1.2.

      • failover_options

        Группа параметров, определяющих настройки переподключения к брокеру в случае ошибок соединения.

        Тип параметра: последовательность текстовых значений.

        По умолчанию: задается пользователем

        • initial_connect_attempts

          Определяет количество попыток, которые будут предприняты при первоначальном подключении к брокеру перед первым успешным соединением и перед тем, как клиент начнет обозревать топологию кластера.

          Значение по умолчанию: 0, только одна попытка доступна.

          Тип параметра: целое значение

        • failover_on_initial_connection

          Определяет, будет ли клиент подключаться к backup серверу, если попытка первоначального соединения завершилась с ошибкой

          Тип параметра: булево значение

          По умолчанию: false

        • reconnect_attempts

          Определяет количество попыток установки соединения перед тем как будет зафиксирована ошибка соединения.

          Тип параметра: целочисленное значение.

          По умолчанию: -1, количество попыток не ограничено.

        • retry_interval

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

          Тип параметра: целочисленное значение.

          По умолчанию: 2000.

        • retry_interval_multiplier

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

          Тип параметра: Число с плавающей точкой.

          По умолчанию: 1.0.

      • discovery_options

        Группа параметров определяющая настройки discovery HA-кластера.

        Тип параметра: Последовательность значений

        Группа имеет следующие параметры:

        • ha

          Определяет, будут ли отслеживаться изменения топологии HA кластере. В случае если значение выставлено в true кластер использует указанные адреса брокеров в параметре brokers только для начального подключения. Все дальнейшие изменения и список failover брокеров он будет принимать через уведомления из текущего соединения с брокером.

          Тип значения: булево значение.

          По умолчанию: false.

        • use_topology_for_load_balancing

          Определяет, использовать ли топологию кластера для балансировки соединений.

          Тип значения: булево значение.

          По умолчанию: true

      • core_options

        Группа параметров определяющих настройки обмена сетевыми пакетами при соединение с брокером.

        Тип параметра: последовательность текстовых значений.

        По умолчанию: задается пользователем

        • connection_ttl

          Определяет время(в миллисекундах) поcле истечения которого, если брокер не отправляет PING-пакеты, соединение будет считаться разорванным.

          Тип параметра: целочисленное значение.

          По умолчанию: 60000

        • confirmation_window_size

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

          Тип параметра: целочисленное значение

          По умолчанию: -1, автоматическое восстановление сессии при повторной установке соединения отключено.

        • client_failure_check_period

          Определяет интервал проверки dead соединений.

          Тип параметра: целочисленное значение.

          По умолчанию: 30000

          Примечание: установление значения в -1 отключает проверку.

      • remove_headers_pattern

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

        Тип параметра: текстовое значение.

      • reply

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

        Тип параметра: последовательность текстовых значений.

        По умолчанию: значение задается пользователем.

        • queue

          Имя очереди, куда будут помещаться сообщения от внешнего сервиса.

          Параметр queue является обязательным.

          Тип параметра: текстовое значение.

        • timeout

          Параметр является обязательным.

          Определяет время ожидания ответа от внешнего сервиса.

          Тип параметра: целочисленное значение.

          По умолчанию: значение задается пользователем.

ArtemisProxy - optional#

В разделе приведено описание опциональных параметров для сервиса ArtemisProxy.

  • 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

    Включает протоколирование событий.

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

    По умолчанию: значение задается пользователем.

    • stage

      Параметр stage является обязательным.

      Тип параметра: последовательность текстовых значений.

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

      • «client_request»;

      • «client_response»;

      • «upstream_request»;

      • «upstream_response».

    • log_body

      Определяет, будет ли логироваться тело сообщения.

      Параметр log_body является обязательным.

      Тип параметра: булево значение.

    • log_headers

      Определяет, будут ли логироваться заголовки сообщений.

      Параметр log_headers является обязательным.

      Тип параметра: булево значение.

  • access_log

    Определяет параметры журналов доступа(обращений).

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

    По умолчанию: значение задается пользователем.

    • max_file_size

      Тип параметра: текстовое значение.

    • max_history

      Тип параметра: целочисленное значение.

    • total_size_cap

      Тип параметра: текстовое значение.

  • error_log

    Определяет параметры журналов ошибок.

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

    По умолчанию: значение задается пользователем.

    • max_file_size

      Тип параметра: текстовое значение.

    • max_history

      Тип параметра: целочисленное значение.

    • total_size_cap

      Тип параметра: текстовое значение.

  • connection_pool

    Позволяет использовать для соединения с Artemis MQ пулы соединений, настройка включена по умолчанию.

    Используется только для sowa_artemis.

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

    • enabled

      Тип параметра: булево значение.

      По умолчанию:

      enabled: true
      
    • max_connections

      Тип параметра: целочисленное значение.

      По умолчанию:

      max_connections: 1
      
    • max_sessions_per_connection

      Тип параметра: целочисленное значение.

      По умолчанию:

      max_sessions_per_connection: 500
      
    • connection_idle_timeout

      Тип параметра: целочисленное значение.

      По умолчанию:

      connection_idle_timeout: 30000
      
  • thread_pool

    Устанавливает количество потоков обработки на стороне клиента.

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

    По умолчанию: значение задается пользователем.

    • scheduled_thread_pool_max_size

      Тип параметра: целочисленное значение.