Перейти к основному содержимому

Свойства узла процесса интеграции вида «RabbitMqНазначение»

Узел этого вида передает сообщения информационной системе, являющейся брокером сообщений RabbitMQ в указанный обмен (Exchange).

RabbitMQ использует протокол AMQP, основное отличие которого от JMS в том, что сообщение от системы-отправителя доставляется не непосредственно в очередь, а через Exchange, в котором определяется, в какую очередь будет доставлено сообщение.

Свойства узла

ВиртуальныйХост

Задает виртуальный хост. Виртуальный хост, в отличие от обычного хоста, понятие логическое. Он определяет права доступа пользователя к очередям и обменам RabbitMQ. Например, есть два виртуальных хоста vhost1, vhost2 и пользователь User. User может иметь доступ ко всем очередям на чтение, запись и добавление/удаление в vhost1, но в vhost2 он может только читать из очередей. Аналогично может быть два разных пользователя, привязанных к разным vhost

Имя

Имя узла, уникальное в рамках процесса интеграции. Используется для обращения к узлу из встроенного языка (УзелСхемыИнтеграции.Имя). Должно начинаться с буквы, за которой следуют буквы, цифры или символы '_' (нижнее подчеркивание). Минимальная длина — 2 символа

ИмяОбмена

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

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

Имя обмена и Ключ маршрутизации не могут быть одновременно пустыми — в таком случае сообщение не будет никуда доставлено. Если при отправке сообщения такое произойдет, «1С:Шина» сгенерирует исключение, подсказывающее, как избежать данной проблемы: изменить свойство узла или задать ключ маршрутизации в параметрах сообщения

ИмяПользователя

Имя пользователя для подключения к удаленному компьютеру

ИнтервалВосстановления

Интервал между попытками восстановления, то есть когда соединение обновляется

КлючМаршрутизации

Ключ маршрутизации для RabbitMq. Этот ключ определит, куда будет направлено сообщение после попадания в exchange из RabbitMqИсточника.

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

Ключ маршрутизации и Имя обмена не могут быть одновременно пустыми, в таком случае сообщение не будет никуда доставлено. Если при отправке сообщения такое произойдет, «1С:Шина» сгенерирует исключение, подсказывающее, как избежать данной проблемы: изменить свойство узла или задать ключ маршрутизации в параметрах сообщения

ОбновлениеМетрик

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

// Разработчик добавил в проект метрику «СчетчикВУзле». Тогда обновить метрику в узлах
// можно следующим образом:
метод ОбновлениеМетрик(Контекст: МойПроцессИнтеграции.КонтекстВызова, Сообщение: МойПроцессИнтеграции.Сообщение)
пер СчетчикВУзле = МойПроцессИнтеграции.Метрики["СчетчикВУзле"]
СчетчикВУзле.Обновить(Сообщение.УзлыПути.Текущий.Узел.Имя, 1)
;

Описание

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

Пароль

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

Порт

Порт, по которому устанавливается соединение с удаленным компьютером

СохранятьСообщениеНаСторонеБрокера

Позволяет настроить сохранение сообщений на стороне брокера RabbitMQ.

Может принимать значения:

  • СохранятьСообщение — отправленные из «1С:Шины» сообщения будут сохранены в брокере RabbitMQ (будут отправлены «постоянные» (persistent) сообщения, со свойством RabbitMQ-сообщения DeliveryMode=2);
дополнительно

Для того чтобы сообщения сохранялись в RabbitMQ, помимо установки соответствующего значения свойства узла «RabbitMqНазначение» СохранятьСообщениеНаСторонеБрокера, также необходимо на стороне самого брокера:

  • Для обмена (Exchange) установить свойство Durable=True;
  • Для очереди (Queue) установить свойство Durable=True.
  • НеCохранятьСообщение — отправленные из «1С:Шины» сообщения не будут сохранены в брокере RabbitMQ (будут отправлены «временные» (transient) сообщения, со свойством RabbitMQ-сообщения DeliveryMode=1);

  • ИзОбработчика — в случае, если выбрано данное значение, необходимо указать в свойстве ВыборСохраненияСообщенияНаСторонеБрокера имя обработчика, который будет определять следует ли сохранять сообщение на стороне RabbitMq или нет.

  • ВыборСохраненияСообщенияНаСторонеБрокера

    Обработчик, который позволяет на основе сообщения и процесса интеграции определить, следует ли сохранять сообщение на стороне RabbitMq. Метод обработчика возвращает Истина, если сообщение должно быть сохранено, иначе Ложь. Необходимо указать в случае, если свойству СохранятьСообщениеНаСторонеБрокера задано значение ИзОбработчика. Пример:

    метод ВыборСохраненияСообщенияНаСторонеБрокера(Контекст: <ИмяПроцессаИнтеграции>.КонтекстВызова, 
    Сообщение: <ИмяПроцессаИнтеграции>.Сообщение): Булево
    если Сообщение.Отправитель.Код == "БУХ"
    возврат Истина
    иначе
    возврат Ложь
    ;
    ;
  • Длительность хранения доставленных сообщений в формате ДД.ЧЧ

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

    Длительность задается в формате ДД:ЧЧ (например, 10:02 — 10 дней и 2 часа). Если указать длительность равную 00:00, то доставленные сообщения для данного узла не будут сохраняться в «1С:Шине». Длительность хранения должна быть равна 00:00 (по умолчанию) либо больше или равна 00:01.

Хост

Имя или IP-адрес удаленного компьютера, с которым «Шина» устанавливает соединение

Пример использования

Контекст: Осуществляется отправка сообщения из системы «1С» в RabbitMQ.

Задача: Отправить сообщение из «1С:Шины» в брокер сообщений RabbitMQ.

Решение: Сообщение приходит в «1С:Шина» от участника из группы «Отправитель» и попадает в узел Канал1СИсточник. В этом узле создается очередь, в которую полученное сообщение сохраняется. Далее используем узел «RabbitMqНазначение», чтобы подключиться к обмену (Exchange) брокера RabbitMQ. На последнем шаге сообщение считывается из очереди «1С:Шины» и записывается в обмен (Exchange) брокера RabbitMQ.