MuleSoft - Процессор сообщений и компоненты скриптов

Модули сценариев упрощают пользователям использование языка сценариев в Mule. Проще говоря, модуль сценариев может обмениваться пользовательской логикой, написанной на языке сценариев. Сценарии можно использовать как реализации или преобразователи. Их можно использовать для оценки выражений, т. Е. Для управления маршрутизацией сообщений.

Mule имеет следующие поддерживаемые языки сценариев -

  • Groovy
  • Python
  • JavaScript
  • Ruby

Как установить модули сценариев?

Собственно, Anypoint Studio поставляется со скриптовыми модулями. Если вы не найдете модуль в палитре Mule, его можно добавить с помощью+Add Module. После добавления мы можем использовать операции модуля сценариев в нашем приложении Mule.

Пример реализации

Как уже говорилось, нам нужно перетащить модуль на холст для создания рабочего пространства и использовать его в нашем приложении. Ниже приведен пример этого -

Мы уже знаем, как настроить компонент HTTP Listener; поэтому мы собираемся обсудить настройку скриптовых модулей. Нам нужно выполнить шаги, написанные ниже, чтобы настроить модуль сценариев -

Step 1

Найдите модуль сценариев в палитре Mule и перетащите EXECUTE работа модуля сценариев в вашем потоке, как показано выше.

Step 2

Теперь откройте вкладку «Выполнить конфигурацию», дважды щелкнув ее.

Step 3

Под General на вкладке нам нужно указать код в Code text window как показано ниже -

Step 4

Наконец, нам нужно выбрать Engineиз исполняемого компонента. Список двигателей приведен ниже -

  • Groovy
  • Nashorn(javaScript)
  • jython(Python)
  • jRuby(Ruby)

XML приведенного выше примера выполнения в редакторе XML конфигурации выглядит следующим образом:

<scripting:execute engine="jython" doc:name = "Script">
   <scripting:code>
      def factorial(n):
         if n == 0: return 1
      return n * factorial(n-1)
      result = factorial(10)
   </scripting:code>
</scripting:execute>

Источники сообщений

Mule 4 имеет упрощенную модель, чем сообщение Mule 3, что упрощает согласованную работу с данными через соединители без перезаписи информации. В модели сообщений Mule 4 каждое событие Mule состоит из двух вещей:a message and variables associated with it.

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

А переменная содержит произвольную информацию о пользователе, такую ​​как результат операции, вспомогательные значения и т. Д.

Входящий

Входящие свойства в Mule 3 теперь становятся атрибутами в Mule 4. Как мы знаем, входящие свойства хранят дополнительную информацию о полезной нагрузке, полученной через источник сообщения, но теперь в Mule 4 это делается с помощью атрибутов. Атрибуты имеют следующие преимущества -

  • С помощью атрибутов мы легко можем увидеть, какие данные доступны, потому что атрибуты строго типизированы.

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

Ниже приведен пример типичного сообщения в Mule 4:

Исходящий

Исходящие свойства в Mule 3 должны быть явно указаны коннекторами и транспортами Mule для отправки дополнительных данных. Но в Mule 4 каждый из них может быть установлен отдельно, используя выражение DataWeave для каждого из них. В основном потоке он не вызывает никаких побочных эффектов.

Например, нижеприведенное выражение DataWeave будет выполнять HTTP-запрос и генерировать заголовки и параметры запроса без необходимости устанавливать свойства сообщения. Это показано в приведенном ниже коде -

<http:request path = "M_issue" config-ref="http" method = "GET">
   <http:headers>#[{'path':'input/issues-list.json'}]</http:headers>
   <http:query-params>#[{'provider':'memory-provider'}]</http:query-params>
</http:request>

Обработчик сообщений

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

Категоризация процессора Mule

Ниже приведены категории Mule Processor, основанные на функциях.

  • Connectors- Эти обработчики сообщений отправляют и получают данные. Они также подключают данные к внешним источникам данных через стандартные протоколы или сторонние API.

  • Components - Эти процессоры сообщений являются гибкими по своей природе и выполняют бизнес-логику, реализованную на различных языках, таких как Java, JavaScript, Groovy, Python или Ruby.

  • Filters - Они фильтруют сообщения и позволяют продолжать обработку в потоке только определенных сообщений на основе определенных критериев.

  • Routers - Этот процессор сообщений используется для управления потоком сообщений для маршрутизации, изменения последовательности или разделения.

  • Scopes - Эй, в основном оборачивают фрагменты кода с целью определения детального поведения в потоке.

  • Transformers - Роль преобразователей заключается в преобразовании типа полезной нагрузки сообщения и формата данных для облегчения связи между системами.

  • Business Events - В основном они собирают данные, связанные с ключевыми показателями эффективности.

  • Exception strategies - Эти обработчики сообщений обрабатывают ошибки любого типа, возникающие во время обработки сообщений.