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

Различные типы потоков в Mule

· 4 мин. чтения

1. Введение

Mule — это продукт на основе Java, предоставляющий решения для корпоративной служебной шины (ESB). Мы можем разрабатывать приложения Mule с помощью Anypoint Studio , плагина Eclipse.

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

2. Корпоративная служебная шина (ESB)

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

Задача ESB — убедиться, что данные представлены в правильном формате. Мы можем найти более подробную информацию о Mule ESB в нашем предыдущем руководстве .

Компоненты — это строительные блоки приложения Mule. Таким образом, именно эти компоненты отвечают за преобразование и маршрутизацию данных. Мы добавляем компоненты в приложение Mule из палитры Mule в правой части Anypoint Studio:

./ab2421deb056d5d66ab26ca2b7f2a260.png

Компоненты последовательно группируются в потоки . Приложение Mule состоит из одного или нескольких потоков.

3. Что такое поток?

Поток — это связанный набор компонентов Mule.

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

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

В Mule есть три разных типа потоков:

  • Подпотоки — синхронный поток, наследующий стратегию обработки и обработки исключений родительского потока.
  • Синхронные потоки — синхронный поток со своей стратегией обработки и обработки исключений.
  • Асинхронные потоки — асинхронный поток со своей стратегией обработки и обработки исключений.

4. Подпотоки

Мы используем подпотоки для группировки общей логики. Подпотоки обрабатываются синхронно ; то есть выполнение вызывающего потока останавливается до завершения подпотока.

В частности, мы можем добавить подпоток из палитры Mule:

./efeccb7f556435deef04345b7cfb4738.png

Подпоток вызывается с использованием компонента ссылки на поток :

./c10290960a4bd10648d2a85f1c411da8.png

Кроме того, подпотоки наследуют стратегии обработки и стратегии обработки исключений вызывающего потока. Мы можем вызвать подпоток из нескольких разных потоков. Если мы не хотим наследовать эти стратегии, мы могли бы вызвать синхронный поток.

5. Синхронные потоки

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

Мы добавляем синхронные потоки в наше приложение Mule, добавляя обычные потоки; отсутствует компонент «синхронный поток». Добавляем компонент регулярного потока :

./e1f638a647b2b46a84c195a2088fb2c3.png

Чтобы вызвать синхронный поток, мы снова используем компонент ссылки на поток :

./2c20aac5a6ae0ac799a510e9e127c7c6.png

В отличие от подпотока, он не наследует стратегии обработки и обработки исключений вызывающего потока. Следовательно, стратегии обработки и обработки исключений вызывающего потока не влияют на поведение этого типа потока.

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

6. Асинхронные потоки

Асинхронные потоки выполняются параллельно вызывающему потоку; т . е . они обрабатываются асинхронно.

Мы добавляем асинхронные потоки в приложение Mule так же, как и синхронные. Итак, что делает поток асинхронным, так это то, что мы вызываем его из асинхронной области. Мы можем сделать это, обернув компонент ссылки на поток в асинхронный компонент :

./af150bbe078f05346062ae7be5a7bf1e.png

Аналогично синхронным потокам — они не наследуют стратегии обработки и обработки исключений вызывающего потока.

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

7. Заключение

В этом кратком руководстве мы обсудили характеристики различных типов потоков в Mule.

Для получения дополнительной информации посетите официальный веб-сайт Mule .