«1. Введение

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

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

2. Сервисная шина предприятия (ESB)

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

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

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

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

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

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

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

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

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

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

4. Подпотоки

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

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

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

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

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

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

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

Для вызова синхронного потока мы снова используем компонент ссылки на поток:

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

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

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

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

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

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

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

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

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

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