Управление и настройка
Интеграционные взаимодействия описываются маршрутами, которые представляют пошаговую передачу сообщения между входной и выходной конечными точками.
Компоненты-обработчики
Медиатор | Описание |
---|---|
|
Используется для настройки обработки ошибок для каждого типа исключения. |
|
Определяет условие для ветвления маршрута. Позволяет выбирать различные пути обработки сообщений в зависимости от условий определенных в блоках when. |
|
Настройка действий при завершении обработки маршрута. |
|
Используется для перехвата каждого этапа обработки сообщений (Exchange) в маршруте. |
|
Позволяет перехватывать все входящие запросы в маршруте, позволяя выполнять заданное поведение перед их обработкой. |
|
Используется для перехвата момента, когда сообщение готовится к отправке в указанную конечную точку (endpoint) и выполнения заданного действия перед отправкой. |
|
Используется для отправки сообщений в указанные статические конечные точки (endpoint). |
|
Используется для отправки сообщений в указанные динамические конечные точки (endpoint). |
|
Используется для определения маршрута сообщений. |
|
Используется для объединения нескольких сообщений в одно. |
|
Интегрирует Java-bean с контейнером сообщений (Exchange) Camel. |
|
Обрабатывает исключения в блоке |
|
Реализует условное ветвление маршрута. Используется для маршрутизации сообщений на основе заданных условий. |
|
Часть элемента |
|
Circuit Breaker — шаблон, используемый для защиты от перегрузок и сбоев. Он контролирует выполнение операций, переключаясь между тремя основными состояниями: Closed: при успешном функционировании операции. Open: при обнаружении ошибки операция блокируется, чтобы предотвратить нагрузку на систему. Half-Open: после блокировки система делает попытку выполнить операцию, чтобы проверить, возможно ли её успешное завершение. |
|
claimCheck - шаблон, используемый для замены содержимого сообщения уникальным ключом (claim check), который позволяет в дальнейшем извлекать и восстанавливать исходное содержимое сообщения. |
|
Преобразует тело сообщения в указанный тип. |
|
Задерживает передачу сообщения на определённое время, прежде чем оно будет передано дальше по маршруту. |
|
Позволяет динамически определять путь маршрутизации для сообщений в зависимости от условий или состояния обработки. |
|
Позволяет дополнять сообщение данными из внешнего источника. |
|
Позволяет продолжать или останавливать обработку сообщения по определённым критериям. |
|
Выполняет завершающие действия в блоке |
|
Фильтрует повторяющиеся сообщения, предотвращая их повторную обработку. Система Camel автоматически добавляет идентификаторы сообщений в хранилище для обнаружения дубликатов, включая сообщения, которые находятся в процессе обработки. По завершении обмена Camel удаляет идентификаторы сообщений из хранилища в случае ошибки или сохраняет их в случае успешной обработки. |
|
Отправляет сообщение в конечную точку (endpoint) в асинхронном режиме без ожидания ответа. |
|
Отправляет сообщение в конечную точку (endpoint) в синхронном режиме и ожидает ответа от получателя. |
|
Распределяет входящие сообщения между несколькими конечными точками (endpoint’ами) для балансировки нагрузки и повышения отказоустойчивости системы. |
|
Используется для логирования процесса обработки сообщений в процессе маршрутизации. |
|
Позволяет обрабатывать сообщение несколько раз, используя различные способы на каждой итерации. |
|
Преобразует тело сообщения (например, объект Java), в бинарный или текстовый формат. Шина поддерживает маршалинг объектов с данными в различные форматы. И содержит в своем составе инструмент трансформации данных с графическим интерфейсов, позволяющим настраивать преобразования данных. |
|
Позволяет передавать одно сообщение нескольким получателям. |
|
Предназначен для локальной обработки в случае, если основной маршрут завершился неудачей. Он позволяет выполнить действия, такие как преобразование сообщений или вызов bean-компонента, обеспечивая отказоустойчивость и обработку ошибок. |
|
Позволяет разделить обработку сообщения на несколько независимых конечных точек (endpoints), которые затем могут быть объединены в цепочку для последовательной обработки сообщения. |
|
Применяет политики безопасности к маршруту. |
|
Использует Polling Consumer для получения дополнительных данных. Обычно используется для обмена сообщениями событий, например, для чтения файла или загрузки данных с FTP. |
|
Используется для обработки обмена сообщениями. |
|
Используется для отправки сообщений нескольким динамически определяемым получателям. |
|
Удаляет заголовок сообщения. |
|
Позволяет удалять один или несколько заголовков из сообщения на основе синтаксиса шаблона. |
|
Позволяет удалить одно или несколько свойств контейнера сообщений (Exchange) на основе синтаксиса шаблона. |
|
Позволяет удалить одно свойство из контейнера сообщений (Exchange). |
|
Перестраивает порядок сообщений. |
|
Используется для маркировки контейнера сообщений (Exchange) для отката и прекращения дальнейшей маршрутизации. |
|
Медиатор, который направляет сообщение по заранее определенному списку конечных точек, что позволяет гибко управлять маршрутизацией сообщений на основе динамически задаваемого списка. |
|
Определяет последовательность взаимосвязанных действий в маршруте, которые должны быть либо успешно завершены (все), либо отменены/откатаны. |
|
Отбирает выборку сообщений для обработки. |
|
Используется для выполнения заданного скрипта. |
|
Используется для преобразования тела сообщения. |
|
Устанавливает шаблон обмена сообщениями. Определяет тип взаимодействия между отправителем и получателем сообщения, указывая, должен ли обмен быть односторонним или двусторонним (с ответом). |
|
Используется для установки заголовка сообщения. |
|
Используется для настройки свойств обработки сообщений (Exchange). |
|
Сортирует содержимое сообщения. |
|
Позволяет разделить сообщение на несколько частей и обработать их по отдельности. |
|
Включает шаги для обработки сообщений. Step - логическая единица в маршруте Camel, объединяющая независимые процессоры для организации группы операций. |
|
Останавливает маршрутизацию сообщений. |
|
Позволяет отправить сообщение в пул потоков для его дальнейшей обработки, отделяя процесс маршрутизации от текущего потока. |
|
Ограничивает частоту обработки сообщений. |
|
Позволяет генерировать исключения в процессе маршрутизации сообщений, контролируя логику обработки ошибок в интеграционных маршрутах. |
|
Transactional Client - предоставляет возможность конфигурирования распределённых транзакций для специально подготовленных компонентов. |
|
Используется для преобразования одного формата данных в другой. |
|
Реализует блок |
|
Преобразует данные из бинарного или текстового формата в объект Java или в другой объект в зависимости от используемого формата данных. |
|
Использует выражение или предикат для проверки содержимого сообщения. Если сообщение недействительно, возникает исключение PredicateValidationException. |
|
Пропускает отправку сообщения в конечный пункт при заданном условии. |
|
Перехватывает и копирует сообщение для отправки в другой конечный пункт. |
|
Используется в качестве шлюза обмена сообщениями (Messaging Gateway) для распределенных систем. |
|
Шаблон корпоративной интеграции "маршрутизация на основании содержимого" поддерживается изменение конечной точки и маршрутизации сообщения на основании анализа содержимого контента. |
Инструкция по разработке компонентов
Пользовательский интерфейс позволяет настраивать компоненты apache camel, использую xml dsl фреймворка camel. Для использования java dsl необходимо создать проект, который может быть собран в виде osgi бандла и задеплоен в шину.
Формирование интеграционных маршрутов
При помощи встроенного синтаксиса плейсхолдеров в шине есть возможность выносить ряд настроек интеграционных взаимодействий в конфигурационные файлы. Что позволяет менять поведение маршрутов и компонентов без переустановки приложения или модуля.
Конфигурация конечных точек
Конечная точка использует уникальный идентификатор ресурса (uri) для настройки протокола, адреса и параметров взаимодействия.