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

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

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

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

Настройка компонента

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

Step 1

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

Step 2

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

Step 3

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

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

Ниже приведены различные core components and their working in Mule 4 -

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

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

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

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

Ниже приведены шаги по добавлению ключевых показателей эффективности в наш поток в приложении Mule.

Step 1 - Следуй за Мулом Palette → Core → Components → Custom Business Event, чтобы добавить компонент Custom Business Event в рабочий процесс в приложении Mule.

Step 2 - Щелкните компонент, чтобы открыть его.

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

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

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

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

пример

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

имя Выражение / значение
Список учеников: Нет # [полезная нагрузка ['RollNo']]
Имя ученика # [полезная нагрузка ['Имя']]

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

Этот основной компонент используется для динамического выбора скрипта в приложении Mule. Мы также можем использовать хардкорный скрипт через компонент Transform Message Component, но использование компонента 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 Он определяет пары ключ-значение. # [{присоединяющийся: 'и', id: payload.user.id}]

Компонент ссылки потока

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

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

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

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

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

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

За работой

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

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

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

пример

Для лучшего понимания, let us use this component in Anypoint Studio. В этом примере мы используем HTTP-прослушиватель для GET сообщения, как мы это делали в предыдущей главе. Итак, мы можем перетащить компонент и настроить. Но для этого примера нам нужно добавить компонент подпотока и установить компонент полезной нагрузки под ним, как показано ниже -

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

После успешной настройки компонента подпотока нам нужно установить компонент ссылки потока после Set Payload основного потока, который мы можем перетащить из палитры Mule, как показано ниже -

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

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

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

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

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

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

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

пример

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

Ниже приведена 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, позволяет преобразовать входные данные в новый формат вывода.

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

Мы можем построить нашу трансформацию с помощью следующих двух методов:

Drag-and-Drop Editor (Graphical View)- Это первый и наиболее часто используемый метод построения нашей трансформации. В этом методе мы можем использовать визуальный сопоставитель этого компонента для перетаскивания элементов входящей структуры данных. Например, на следующей диаграмме в двух древовидных представлениях показаны ожидаемые структуры метаданных ввода и вывода. Строки, соединяющие поле ввода и вывода, представляют собой сопоставление между двумя представлениями дерева.

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

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

  • CSV
  • Schema
  • Схема плоского файла
  • JSON
  • Класс объекта
  • Простой тип
  • Схема XML
  • Имя и тип столбца Excel
  • Имя и тип столбца фиксированной ширины