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 .