Учебники

Основные компоненты и их конфигурация

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

Ниже приведены типы шаблонов конфигурации, предоставляемые Mule —

  • Простой шаблон обслуживания
  • Мост
  • Validator
  • HTTP прокси
  • WS прокси

Конфигурирование компонента

В Anypoint studio мы можем выполнить следующие шаги для настройки компонента:

Шаг 1

Нам нужно перетащить компонент, который мы хотим использовать в нашем приложении Mule. Например, здесь мы используем компонент прослушивателя HTTP следующим образом:

Конфигурирование компонента

Шаг 2

Затем дважды щелкните компонент, чтобы открыть окно конфигурации. Для слушателя HTTP это показано ниже —

Окно конфигурации

Шаг 3

Мы можем настроить компонент согласно требованию нашего проекта. Например, мы сделали для компонента прослушивания HTTP —

Компонент прослушивателя HTTP

Основные компоненты являются одним из важных строительных блоков рабочего процесса в приложении Mule. Логика для обработки события Mule обеспечивается этими основными компонентами. В Anypoint studio, чтобы получить доступ к этим основным компонентам, вы можете нажать на Core из палитры мулов, как показано ниже —

App Mule Palette

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

Индивидуальные бизнес-мероприятия

Этот основной компонент используется для сбора информации о потоках, а также обработчиках сообщений, которые обрабатывают бизнес-транзакции в приложении Mule. Другими словами, мы можем использовать компонент Custom Business Event, чтобы добавить следующее в наш рабочий процесс:

  • Метаданные
  • Ключевые показатели эффективности (KPI)

Как добавить KPI?

Ниже приведены шаги по добавлению KPI в наш поток в приложении Mule.

Шаг 1 — Следуйте палитре Mule → Core → Компоненты → Custom Business Event , чтобы добавить компонент Custom Business Event в рабочий поток в приложении Mule.

Шаг 2 — Нажмите на компонент, чтобы открыть его.

Шаг 3 — Теперь нам нужно предоставить значения для отображаемого имени и имени события.

Шаг 4 — Чтобы получить информацию из полезной нагрузки сообщения, добавьте KPI следующим образом:

  • Дайте имя (ключ) для KPI ( отслеживание: элемент метаданных ) и значение. Имя будет использоваться в поисковом интерфейсе Runtime Manager.

  • Дайте значение, которое может быть любым выражением Mule.

Дайте имя (ключ) для KPI ( отслеживание: элемент метаданных ) и значение. Имя будет использоваться в поисковом интерфейсе Runtime Manager.

Дайте значение, которое может быть любым выражением Mule.

пример

Следующая таблица состоит из списка KPI с именем и значением —

название Выражение / Value
Студенческий RollNo # [Полезной нагрузки [ ‘RollNo’]]
Имя ученика # [Полезной нагрузки [ ‘Name’]]

Динамическая оценка

Этот основной компонент используется для динамического выбора скрипта в приложении Mule. Мы также можем использовать хардкорный скрипт через компонент Transform Message, но лучше использовать компонент Dynamic Evaluate. Этот основной компонент работает следующим образом —

  • Во-первых, он оценивает выражение, которое должно привести к другому сценарию.

  • Затем он оценивает этот скрипт для окончательного результата.

Во-первых, он оценивает выражение, которое должно привести к другому сценарию.

Затем он оценивает этот скрипт для окончательного результата.

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

пример

Ниже приведен пример выбора сценария из базы данных с помощью параметра запроса Id и сохранения этого сценария в переменной с именем MyScript . Теперь компонент динамической оценки получит доступ к переменной, чтобы вызвать сценарии, чтобы он мог добавить переменную имени из параметра запроса UName .

Конфигурация XML потока приведена ниже —

<flow name = "DynamicE-example-flow">
   <http:listener config-ref = "HTTP_Listener_Configuration" path = "/"/>
   <db:select config-ref = "dbConfig" target = "myScript">
      <db:sql>#["SELECT script FROM SCRIPTS WHERE ID = 
         $(attributes.queryParams.Id)"]
      </db:sql>
   </db:select>
   
   <ee:dynamic-evaluate expression = "#[vars.myScript]">
      <ee:parameters>#[{name: attributes.queryParams.UName}]</ee:parameters>
   </ee:dynamic-evaluate>
</flow>

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

Настройка динамической оценки

В следующей таблице представлен способ настройки компонента Dynamic Evaluate —

поле Значение Описание пример
выражение Выражение DataWeave Он определяет выражение для оценки в финальном скрипте. Выражение = «# [vars.generateOrderScript]»
параметры Выражение DataWeave Он определяет пары ключ-значение. # [{joiner: ‘and’, id: payload.user.id}]

Компонент Flow Reference

Если вы хотите направить событие Mule в другой поток или подпоток и обратно в том же приложении Mule, тогда компонент ссылки на поток является правильным вариантом.

Характеристики

Ниже приведены характеристики этого основного компонента —

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

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

  • Таким образом, вместо добавления целых этапов обработки, мы можем добавить ссылки на потоки, которые указывают на поток обработки. На приведенном ниже снимке экрана показано, что базовый компонент ссылки на поток указывает на подпоток с именем ProcessFiles .

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

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

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

Компонент Flow Reference

За работой

Работу компонента Flow Ref можно понять с помощью следующей диаграммы:

Основной рабочий поток

На диаграмме показан порядок обработки в приложении Mule, когда один поток ссылается на другой поток в том же приложении. Когда запускается основной рабочий поток в приложении Mule, событие Mule проходит все время и выполняет поток до тех пор, пока событие Mule не достигнет Flow Reference.

После достижения ссылки на поток событие Mule выполняет указанный поток от начала до конца. Как только событие Mule завершает выполнение Ref Flow, оно возвращается к основному потоку.

пример

Для лучшего понимания, давайте использовать этот компонент в Anypoint Studio . В этом примере мы используем HTTP-прослушиватель, чтобы получить сообщение, как мы это делали в предыдущей главе. Таким образом, мы можем перетащить компонент и настроить. Но для этого примера нам нужно добавить компонент Sub-flow и установить под него компонент Payload, как показано ниже —

Компонент в Anypoint Studio

Далее нам нужно настроить Set Payload , дважды щелкнув по нему. Здесь мы даем значение «Подпоток выполнен», как показано ниже —

Установить полезную нагрузку

После успешной настройки компонента подпотока нам нужно, чтобы компонент «Ссылка на поток» устанавливался после «Задать полезную нагрузку основного потока», которую мы можем перетаскивать из палитры мула, как показано ниже —

Компонент Sub Flow

Далее, при настройке компонента Flow Reference нам нужно выбрать имя потока на вкладке Generic, как показано ниже —

Выберите имя потока

Теперь сохраните и запустите это приложение. Чтобы проверить это, перейдите в POSTMAN и введите http: / localhost: 8181 / FirstAPP в строке URL-адреса, и вы получите сообщение «Выполнен подпоток» .

Почтальон

Компонент регистратора

Основной компонент, называемый logger, помогает нам отслеживать и отлаживать наше приложение Mule, регистрируя важную информацию, такую ​​как сообщения об ошибках, уведомления о состоянии, полезные нагрузки и т. Д. В AnyPoint studio они появляются в консоли .

преимущества

Ниже приведены некоторые преимущества компонента Logger.

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

пример

В приведенном ниже примере в браузере «Set Payload» в браузере отображается сообщение «Hello World», а также регистрируется сообщение.

Компонент регистратора

Ниже приведена XML-конфигурация потока в приведенном выше примере.

<http:listener-config name = "HTTP_Listener_Configuration" host = "localhost" port = "8081"/>
<flow name = "mymuleprojectFlow">
   <http:listener config-ref = "HTTP_Listener_Configuration" path = "/"/>
   <set-payload value = "Hello World"/<
   <logger message = "#[payload]" level = "INFO"/>
</flow>

Компонент передачи сообщения

Компонент Transform Message, также называемый компонентом Transfer, позволяет нам преобразовывать входные данные в новый выходной формат.

Методы построения Трансформации

Мы можем построить наше преобразование с помощью следующих двух методов —

Редактор перетаскивания (графическое представление) — это первый и наиболее используемый метод для построения нашего преобразования. В этом методе мы можем использовать визуальное отображение этого компонента для перетаскивания элементов входящей структуры данных. Например, на следующей диаграмме два древовидных представления показывают ожидаемые структуры метаданных ввода и вывода. Линии, соединяющие входные данные с полем вывода, представляют сопоставление между двумя представлениями дерева.

Компонент передачи сообщения

Представление скрипта — Визуальное отображение Transformation также можно представить с помощью DataWeave, языка для кода Mule. Мы можем сделать кодирование для некоторых расширенных преобразований, таких как агрегация, нормализация, группировка, объединение, разбиение, поворот и фильтрация. Пример приведен ниже —

Источник Трансформации

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