Общая информация
Apache Camel — открытый кроссплатформенный java-фреймворк, который позволяет проводить интеграцию приложений в простой и понятной форме.
Camel использует доменные языки (Domain Specific Language - DSL) для описания проектных шаблонов интеграции или маршрутов.
В Citeck используется Yaml DSL для описания маршрутов в формате YAML и XML DSL.
Camel-контекст – главная сущность Camel. Контекст является контейнером среды выполнения Camel. Контекст предоставляет много полезных сервисов, наиболее значимыми являются маршруты, компоненты, языки, конверторы типов, реестр, endpointы и форматы данных.
Маршрут – определение интеграционного потока. Например, для объединения двух систем маршрут определяет, как именно эти системы взаимодействуют.
Компоненты — подробно описаны по ссылке
Bean – для вызова методов Java-бинов, хранящихся в реестре;
Direct – вызывает другой endpoint из того же контекста синхронно;
Direct VM - вызывает другой endpoint из любого контекста на той же JVM синхронно;
File – читает и записывает файлы;
Timer – генерирует сообщения с определенным интервалом, используя java.util.Timer;
JDBC – предоставляет доступ к базам данных через JDBC;
Jetty – предоставляет endpoint на основе HTTP для получения и отправки HTTP запросов.
Пример контекста с маршрутом:
Тип запуска:
MANUALLY - Работает, как и обычный Camel DSL. Запускается и останавливается через действие.
IMPORT_DATA - Используется для описания обработки файла при Импорте данных
В контекст Camel DSL можно прикладывать файлы в формате base64. В конфиге можно указать название файла и его контент:
file:
name: Пользователи.xlsx
content: 'UEsDLVsnEoVzlgUAAJYFAAATAAAAW0NvbnRlbnRfVHlwZXNdLnhtbDw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04IiBzd='
После деплоя в Camel DSL будет сразу приложенный файл:
Примечание
Атрибут = свойство = поле
Целевая БД = БД назначения = целевой источник данных — куда данные помещаются
Исходная БД = исходный источник данных — откуда данные берутся