Что такое apache camel

What is Camel?

Apache Camel ™ is a versatile open-source integration framework based on known Enterprise Integration Patterns.

Camel empowers you to define routing and mediation rules in a variety of domain-specific languages (DSL, such as Java, XML, Groovy, Kotlin, and YAML). This means you get smart completion of routing rules in your IDE, whether in a Java or XML editor.

Apache Camel uses URIs to work directly with any kind of transport or messaging model such as HTTP, ActiveMQ, JMS, JBI, SCA, MINA or CXF, as well as pluggable Components and Data Format options. Apache Camel is a small library with minimal dependencies for easy embedding in any Java application. Apache Camel lets you work with the same API regardless which kind of transport is used — so learn the API once and you can interact with all the Components provided out-of-box.

Apache Camel provides support for Bean Binding and seamless integration with popular frameworks such as CDI, Spring. Camel also has extensive support for unit testing your routes.

The following projects can leverage Apache Camel as a routing and mediation engine:

Apache ServiceMix — a popular distributed open source ESB and JBI container

Apache ActiveMQ — a mature, widely used open source message broker

Apache CXF — a smart web services suite (JAX-WS and JAX-RS)

Apache Karaf — a small OSGi based runtime in which applications can be deployed

Apache MINA — a high-performance NIO-driven networking framework

So don’t get the hump — try Camel today! 🙂

Too many buzzwords — what exactly is Camel?

Okay, so the description above is technology focused. There’s a great discussion about Camel at Stack Overflow. We suggest you view the post, read the comments, and browse the suggested links for more details.

© 2004-2021 The Apache Software Foundation.
Apache Camel, Camel, Apache, the Apache feather logo, and the Apache Camel project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.

Источник

Apache Camel

Camel is an Open Source integration framework that empowers you to quickly and easily integrate various systems consuming or producing data.

Что такое apache camel. Смотреть фото Что такое apache camel. Смотреть картинку Что такое apache camel. Картинка про Что такое apache camel. Фото Что такое apache camel

What’s New?

Apache Camel 3.14 What’s New

Details of what we have done in the Camel 3.14 LTS release. Read More

RELEASE 3.14.0

The Camel community announces the immediate availability of the new Camel 3.14.0 LTS release. Read More

A high-security API management infrastructure using Apache Camel

How a high-security API management infrastructure is implemented using Camel and Keycloak. Read More

Why Camel?

Based on Enterprise Integration Patterns

Camel supports most of the Enterprise Integration Patterns from the excellent book by Gregor Hohpe and Bobby Woolf, and newer integration patterns from microservice architectures to help you solve your integration problem by applying best practices out of the box.

Что такое apache camel. Смотреть фото Что такое apache camel. Смотреть картинку Что такое apache camel. Картинка про Что такое apache camel. Фото Что такое apache camel

Что такое apache camel. Смотреть фото Что такое apache camel. Смотреть картинку Что такое apache camel. Картинка про Что такое apache camel. Фото Что такое apache camel

Runs Everywhere

Apache Camel is standalone, and can be embedded as a library within Spring Boot, Quarkus, Application Servers, and in the clouds. Camel subprojects focus on making your work easy.

Packed with Components

Packed with several hundred components that are used to access databases, message queues, APIs or basically anything under the sun. Helping you integrate with everything.

Что такое apache camel. Смотреть фото Что такое apache camel. Смотреть картинку Что такое apache camel. Картинка про Что такое apache camel. Фото Что такое apache camel

Что такое apache camel. Смотреть фото Что такое apache camel. Смотреть картинку Что такое apache camel. Картинка про Что такое apache camel. Фото Что такое apache camel

Supports over 50 Data Formats

Camel supports around 50 data formats, allowing to translate messages in multiple formats, and with support from industry standard formats from finance, telco, health-care, and more.

Apache Camel Projects

Camel Core

Apache Camel helps you integrate various systems consuming or producing data.

Что такое apache camel. Смотреть фото Что такое apache camel. Смотреть картинку Что такое apache camel. Картинка про Что такое apache camel. Фото Что такое apache camel

Camel K

Apache Camel K is a lightweight integration framework that runs natively on Kubernetes.

Что такое apache camel. Смотреть фото Что такое apache camel. Смотреть картинку Что такое apache camel. Картинка про Что такое apache camel. Фото Что такое apache camel

Camel Quarkus

Apache Camel Quarkus packages 280+ Camel components as Quarkus extensions.

Что такое apache camel. Смотреть фото Что такое apache camel. Смотреть картинку Что такое apache camel. Картинка про Что такое apache camel. Фото Что такое apache camel

Camel Kafka Connector

Apache Camel Kafka Connector embeds Camel within Kafka Connect.

Что такое apache camel. Смотреть фото Что такое apache camel. Смотреть картинку Что такое apache camel. Картинка про Что такое apache camel. Фото Что такое apache camel

Camel Spring Boot

Apache Camel Spring Boot runs Camel on Spring Boot and provides starters for Camel components.

Что такое apache camel. Смотреть фото Что такое apache camel. Смотреть картинку Что такое apache camel. Картинка про Что такое apache camel. Фото Что такое apache camel

Camel Karaf

Apache Camel Karaf makes running Apache Camel components to run in the OSGi environment.

Apache & OpenSource

Что такое apache camel. Смотреть фото Что такое apache camel. Смотреть картинку Что такое apache camel. Картинка про Что такое apache camel. Фото Что такое apache camel

Camel is your project!

Camel is an Apache Software Foundation project, available under the Apache v2 license. It’s a complete open community, always listening to proposals and comments.

Sources, mailing lists, issue tracker: it’s fully open, you can access directly.

We also love contributions: don’t hesitate to contribute. You can contribute by editing this page!

© 2004-2021 The Apache Software Foundation.
Apache Camel, Camel, Apache, the Apache feather logo, and the Apache Camel project logo are trademarks of The Apache Software Foundation. All other marks mentioned may be trademarks or registered trademarks of their respective owners.

Источник

Перетягивание «Верблюда» или интеграция средствами Camel. Часть 1

История одного проекта.

Что такое apache camel. Смотреть фото Что такое apache camel. Смотреть картинку Что такое apache camel. Картинка про Что такое apache camel. Фото Что такое apache camel
Вам когда-нибудь снились верблюды? Вот и мне тоже нет. Но, когда работаешь с Camel-ом уже третий год, начинают сниться не только верблюды.
В общем, буду делиться опытом, писать о верблюдах и учить вас их готовить. Это серия статей в трёх частях: первая часть будет для тех, кому интересны истории и муки творчества; вторая — больше техническая, о паттернах интеграции, их применении и третья часть — об ошибках и отладке.
Если вам нужно объединить ваши сервисы, здесь вы узнаете, чем хорош Camel. Если вы хотите научиться использовать что-нибудь новенькое, здесь мы начнём с азов. Если вам нравятся истории и оригинальные фишки, которые есть в каждой команде, то читайте дальше.

Задача интеграции

Начну с того, как появилась необходимость в сервисной шине. Мы разрабатываем крупную систему, которую ласково “за глаза” назвали монстриком. Монстрик получился большой и страшный, а в действительности это была одна из BPM систем (business process managment system). Началось всё несколько лет назад. Однажды на совещании руководитель проекта заговорил о планах на будущее:
— Коллеги, в ближайшее время мы планируем интегрироваться с большим количеством внутренних и внешних систем. Сейчас нам надо проработать системный подход для того, чтоб наши аналитики смогли начать подготовку задач.

От рассуждений к практике

Через какое-то время, когда процесс поиска только набирал обороты, аналитики по заказу клиента написали первую постановку:
— Ребят, мы тут постановку написали, надо её сделать быстро. Заказчик очень ждал её ещё вчера, поэтому постарайтесь.

У нас так бывает часто, но всегда мы успеваем сделать новую функциональность во время. Этот раз не исключение, нас ждал большой объём работы и сжатые сроки реализации. Хотя мы и не могли использовать для этой постановки сервисную шину, но мы использовали постановку как первую практическую задачу для создания прототипа.

А пока предстояло выбрать технологии, на которых должен был строиться наш прототип. Изобретать свой велосипед и начинать с чистого листа — здорово, но слишком дорого. Проприетарные решения тоже не стали использовать потому, что результат требовался быстро, а на то, чтоб согласовать и решить финансовые вопросы, нужно время. Поэтому обратились к opensource проектам. На тот момент выбор был небольшой, поэтому оценить достоинства “верблюда” смогли с первого взгляда.

Что такое apache camel. Смотреть фото Что такое apache camel. Смотреть картинку Что такое apache camel. Картинка про Что такое apache camel. Фото Что такое apache camel

… Apache Camel due to its awesome Java, Groovy and Scala DSLs, combined with many supported technologies.

Возможность использовать fluent Java DSL вместо “корявого” XML стала большим преимуществом и для нас. Возникает вопрос: в чём корявость? XML — отличный язык разметки, но ему уже давно предпочитают JSON или YAML. Предпочтение им отдают из-за простоты, лучшей читаемости, меньшего числа вспомогательной информации и более простых алгоритмов разбора. Языки программирования такие как Java, Groovy, Scala имеют полноценную поддержку современными IDE, а значит в отличии от XML появляется возможность отладки и рефакторинга. Сомнений в Camel-е не осталось, и он лег в основу нашей сервисной шины. Тот факт, что этот проект использовали другие компании, добавлял уверенности в правильном выборе.
Оставался главный вопрос — как интегрировать Camel в нашего монстрика.

Муки выбора: JMS против RMI.

Что такое apache camel. Смотреть фото Что такое apache camel. Смотреть картинку Что такое apache camel. Картинка про Что такое apache camel. Фото Что такое apache camel

Интеграцию сервисной шины и нашего монстрика можно было реализовать с помощью одного из множества компонентов, поддерживаемых Camel-ом. Основываясь на задачах, приведённых выше, мы сформировали требования: связь должна быть стабильной и гарантирующей доставку сообщений. Остановились на трёх вариантах: первые два были синхронные RMI и HTTP, и один асинхронный JMS. Из трёх остановились на двух самых простых вариантах подходящих для наших проектов на Java: JMS, RMI. JMS (Java message service) — это стандарт для рассылки сообщений, он регламентирует правила отправки, получения, создания и просмотра сообщений. Второй, RMI (Remote Method Invocation) — это программный интерфейс вызова удаленных процедур, он позволяет вызывать методы одной JVM в контексте другой. Стандартная процедура удалённого вызова включает упаковку Java объектов и передачу. Справедливости ради, стоит отметить, что противопоставлять JMS и RMI не корректно потому, что JMS может быть транспортом и составной частью RMI. Мы противопоставляем стандартную реализацию RMI и реализацию JMS — ActiveMQ. Раньше RMI уже использовался нами для интеграции двух приложений. Почему его выбрали тогда? Когда оба приложения на Java, нет ничего проще RMI. Для того, чтобы его использовать, достаточно описать интерфейс и зарегистрировать объект, реализующий этот интерфейс. Но нам довелось решать проблемы, возникающие с RMI, при передаче большого объёма данных между приложениями: память забивалась, и приложения “складывались”. Мы искали способы решения этой проблемы и обсуждали её с разработчиками JVM на JavaOne. Выяснилось, что сборщики “мусора” в виртуальной машине и распределённые сборщики — это разные вещи. Всё упиралось в то, что для стандартного сборщика мусора можно было выбрать его тип и настроить оптимальные параметры, а для распределённого такой возможности не было. Если говорить о других отличиях, то RMI ограничивал интеграцию приложениями, выполняющимися на JVM, а JMS — нет. Вдобавок к описанным трудностям было желание изучить что-то новое: отказаться от RMI и использовать альтернативное решение.

Первый прототип Camel

Давайте вернёмся к созданию прототипа. Первая практическая задача для сервисной шины была такая: пользователь инициирует процесс выгрузки данных, система их подготавливает и отправляет в сервисную шину. Вся работа по доставке данных ложится на неё. На рисунке — пример постановки задачи в символах паттернов интеграции корпоративных приложений (EIP).
Что такое apache camel. Смотреть фото Что такое apache camel. Смотреть картинку Что такое apache camel. Картинка про Что такое apache camel. Фото Что такое apache camel
Сервисная шина объединяет приём сообщений из канала JMS, их преобразование и отправку через HTTP. Отмеченные на рисунке канал JMS и канал отправки сообщений в формате HTML предполагалось реализовать, используя JMS и Jetty компоненты Camel. Процесс преобразования данных можно было реализовать на Java и/или использовать шаблонизаторы, такие как, например, VM (Apache Velocity). Предложенная схема передачи данных реализуется на Java DSL в одну строку. Пример:

На примере выше приведён роут на Java DSL. Роут — это описание маршрута передачи сообщения. В Camel-е описания могут быть двух типов: Java DSL и XML DSL. Характеристиками такого маршрута являются начальная и одна или несколько конечных точек, обозначенными токенами from и to соответственно. Маршрут описывает путь сообщения от начальной до конечной точки. Если конечные точки указаны последовательно, сообщение будет передано на первую, сервисная шина дождется ответа, который затем отправит на следующую точку. Могут встречаться маршруты, выбирающие нужную конечную точку (Dynamic Router) или отправляющие сообщение сразу на несколько точек (Recipient List). Параметр токенов from и to — это строка с URI. URI представляет собой тройку параметров, состоящую из названия компонента Camel, идентификатора ресурса и параметров подключения. Давайте разберём на примере:

Это описание входной точки, которая использует компонент JMS. Компонент JMS предоставляет возможность получать данные из ресурса queue:se.export. Где queue — тип канала сообщений, может быть или очередь(queue), или тема (topic). Далее идёт название канала “se.export”. Очередь с таким именем будет создана брокером сообщений. Последняя часть URI, параметры конечной точки: “timeToLife=10000”, говорит о том, что время жизни пакета составляет 10 сек.
Из примера понятно, как мы планировали организовать передачу данных, в следующей статье будет больше реального кода и примеров.
Итак, мы решили задачу передачи данных, создали прототип интеграционной шины, который состоял из Camel и был практически готов к внедрению. Оставалось решить задачу его правильной и удобной настройки.

Настройка прототипа

Здесь используются сразу несколько способов адресации параметров. Вот они:
— в simple диалекте строкой “$
— в URI endpoint-а строкой “<>”
Названия параметров могут быть любые, строки взяты из примера выше.

Давайте представим реальную задачу:
есть сервис, который отправляет письма через сервисную шину на сервер SMTP; такой сервис должен для рабочей системы выполнять отсылку сообщений пользователям, а для тестовой выполнять отсылку всех писем на один почтовый ящик.
Тогда эта задача трансформируется в добавление разной логики для некоторых маршрутов выполняемых на тестовой и рабочей системе.

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

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

Итоги

На этом пока, пока. До встречи в следующей части. Напомню, она будет посвящена юзкейсам использования Camel-а.

Источник

Что такое Apache Camel?

Я не понимаю, что именно верблюд делает.

Если бы вы могли дать в 101 слове введение в Camel:

пожалуйста, объясните, что такое верблюд.

20 ответов

Если у вас есть от 5 до 10 минут, я обычно рекомендую людям прочитать это интеграция с Apache Camel Джонатан Энсти. Это хорошо написанная часть, которая дает краткое введение и обзор некоторых концепций Camel, и она реализует вариант использования с образцами кода. В ней Джонатан пишет:—3—>

Apache Camel-это Java-фреймворк с открытым исходным кодом, который фокусируется на том, чтобы упростить интеграцию и сделать ее более доступной для разработчиков. Он делает это предоставление:

существует также бесплатная главу Верблюд в действиях который вводит Camel в первой главе. Джонатан является соавтором эта книга со мной.

мой взгляд, чтобы описать это более доступным способом.

чтобы понять, что такое Apache Camel, вам нужно понять, какие шаблоны интеграции предприятия.

давайте начнем с того, что мы, по-видимому, уже знаем: одноэлементный шаблон, Заводской шаблон и т. д.; Они просто способы организации вашего решения проблемы, но они не являются решениями сами по себе. Эти образцы были проанализированы и извлечены для остальных из нас бандой четырех, когда они опубликовали свою книгу:—5—>Шаблоны Проектирования. Они сэкономили некоторым из нас огромные усилия, думая о том, как лучше всего структурировать наш код.

Как и «Банда четырех», Грегор Хоп и Бобби Вульф написали книгу Модели Интеграции Предприятия (EIP), в котором они предлагают и документируют набор новых шаблонов и проектов как мы могли бы лучшие конструируйте большие основанные на компонент системы, где компоненты могут бежать дальше тот же процесс или в другой машине.

Итак, что такое Apache Верблюд?

Apache Camel предлагает вам интерфейсы для EIPs, базовых объектов, обычно необходимых реализаций, инструментов отладки, системы конфигурации и многих других помощников, которые сэкономят вам массу времени, когда вы хотите реализовать свое решение, чтобы следовать EIPs.

возьмите MVC. MVC довольно прост в теории, и мы могли бы реализовать его без какой-либо Рамочной помощи. Но хорошие рамки MVC предоставляют нам готовую к использованию структуру и пошли дополнительные mile и продумали все другие «побочные» вещи, которые вам нужны при создании большого проекта MVC, и именно поэтому мы используем их большую часть времени.

Это именно то, что Apache Camel для EIPs. это полная производственная платформа для людей, которые хотят реализовать свое решение, чтобы следовать EIPs.

создание описание проекта не должно быть сложным.

в Википедии написано:

Apache Camel-это основанный на правилах механизм маршрутизации и передачи, который предоставляет объектную реализацию Java шаблонов интеграции предприятия с использованием API (или декларативного языка домена Java) для настройки правил маршрутизации и передачи. Язык домена означает, что Apache Camel может поддерживать типобезопасное интеллектуальное завершение правил маршрутизации в вашей среде IDE с использованием обычного кода Java без огромного количества файлов конфигурации XML; хотя конфигурация XML внутри Spring также поддерживаемый.

посмотреть? Это не трудно было?

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

1) Вы можете разработать пользовательскую программу, которая будет делать это (может быть трудоемким и трудно понять, поддерживать для другого разработчика)

2) Кроме того, вы можете использовать Apache Camel, чтобы сделать это стандартизированным способом (это большинство разъемов уже разработаны для вас, вам просто нужно настроить его и подключить логический процесс):

верблюд поможет вам:

с помощью Apache Camel вы сможете легко понять / поддерживать / расширять свою систему до другого разработчика.

Apache Camel разработан с Модели Интеграции Предприятий. Шаблоны помогут вам интегрировать системы в хорошем смысле 🙂

диаграмма лучше, чем тысячи описаний. Эта диаграмма иллюстрирует архитектуру Camel.

Источник

Apache Camel и Spring Boot

Что такое apache camel. Смотреть фото Что такое apache camel. Смотреть картинку Что такое apache camel. Картинка про Что такое apache camel. Фото Что такое apache camel

В этой статье рассмотрена интеграция Apache Camel со средой Spring Boot.

1. Введение

Apache Camel — это фреймворк для интеграции приложений и эффективного взаимодействия между различными системами, с чем приходится часто сталкиваться в любой корпоративной инфраструктуре. Apache Camel позволяет разработчику сосредоточиться на логике процессов, не переводя данные в канонический формат, так как Camel поддерживает более 80 API для реализации различных протоколов и типов данных. Таким образом, разработчику — то есть вам — достаточно просто знать, как Camel соединяет все вместе. В этой статье мы по шагам рассмотрим, как интегрировать Apache Camel и Spring Boot.

Но прежде чем обратиться к примеру со средой Spring Boot, разберемся с основными понятиями и терминами Camel.

1.1. Сообщение

Сообщение (message) — это объект данных, используемый системами для обмена информацией друг с другом.

1.2. Обмен

Объект обмена (exchange) — это контейнер, вмещающий сообщение и обеспечивающий взаимодействие между системами. Это контейнер сообщений, определяющий тип обмена сообщениями.

1.3. Контекст Camel

Контекст Camel (CamelContext) — это фундаментальная модель Camel, предоставляющая доступ к различным службам (маршрутам, конечным точкам и др.).

1.4. Маршруты

Маршруты (routes) — это абстракция, позволяющая клиентам и серверам работать независимо. Маршруты, описываемые на доменных языках DSL, представляют собой цепочку вызовов функций (процессоров).

1.5. Предметно-ориентированный язык

Процессоры и конечные точки соединяются друг с другом посредством описания на предметно-ориентированном языке (Domain-Specific Language, DSL) — такие описания и составляют маршруты. В нашем случае язык DSL — это Java Fluent API, но при использовании Camel с другими языками/фреймворками это может быть также XML или какой-то другой язык DSL.

1.6. Процессор

Процессоры (processor) выполняют операции обмена. Маршруты можно представить в качестве логического модуля, который соединяет процессоры, нужные для обработки сообщения.

1.7. Компонент

Компоненты (component) — это модули расширения Apache Camel. Именно они позволяют Camel легко обеспечивать интеграцию с другими системами. Здесь перечислены все основные компоненты, поддерживаемые Camel. Компоненты производят конечные точки с заданным универсальным кодом ресурса (URI).

1.8. Конечная точка

Конечные точки (endpoint) — это точки подключения служб, соединяющих одни системы с другими. Мы создаем конечные точки с помощью компонентов, используя определенный универсальный код ресурса (URI). Например, чтобы создать подключение FTP, в маршруте следует указать следующий URI: ftp://[имяпользователя@]имяхоста[:порт]/директория[?опции] — так компоненты будут создавать конечную точку FTP с заданной конфигурацией.

1.9. Производитель

Производители (producer) — это модули Camel, которые создают сообщения и отправляют их в конечную точку.

1.10. Потребитель

Потребители (consumer) — это модули Camel, которые получают сообщения, созданные производителем, инкапсулируют их внутри объекта exchange и отправляют процессорам.

Пока этих понятий Camel будет достаточно. Изучать их подробно нет необходимости, но базовое представление об архитектуре Camel поможет вам эффективно использовать его возможности. В приведенном ниже примере мы рассмотрим интеграцию этих возможностей в Spring Boot.

2. Общие сведения о приложении

Мы создадим приложение со следующими свойствами:

приложение включает объекты данных двух типов: продукты и скидки;

продукты мы добавляем при начальной настройке;

скидки автоматически применяются к продуктам по истечении определенного времени (Camel Timer + Camel JPA);

имеется конечная точка REST для перечисления всех продуктов и скидок (Camel REST);

Для этого мы используем H2, Spring Web, Spring JPA и Apache Camel.

3. Начальная настройка приложения

Создайте проект сборки кода со следующими зависимостями. Чтобы подготовить основу для приложения, можно использовать IDE или Spring Initializr. Ниже приведен полный файл pom.xml с пояснениями:

4. Подготовка объектов данных

Перед тем как начать работу с Apache Camel, следует подготовить необходимые объекты данных, службы и репозитории.

4.1. Продукт

Создайте объект данных типа «продукт» со следующими полями: идентификатор, имя, цена и скидка. Также мы создадим именованный запрос, который можно вызвать из Camel по имени и получить в ответ результат. Именованный запрос «продукты со скидкой» возвращает все продукты, для которых назначена скидка.

Создайте класс ProductRepository, который расширяется из интерфейса CrudRepository репозитория Spring Data. Такое расширение предоставляет в наше распоряжение готовые к вызову запросы: findAll, findById, save и т. д.

4.2. Класс службы

4.3. Скидка

Создайте объект данных типа «скидка» со следующими полями: идентификатор, величина и продукт. Одномоментно к продукту может применяться только одна скидка, поэтому задайте для поля «продукт» отношение OneToOne.

Создайте репозиторий DiscountRepository, как описано выше.

5. Настройка приложения

6. Интеграция Apache Camel

Итак, мы подготовили данные для использования с Apache Camel. Можно приступать к интеграции.

6.1. Создание маршрутов

После создания нашего класса маршрутов путем расширения из RouteBuilder необходимо переопределить его метод конфигурирования. Нам нужна логика, которая будет автоматически создавать скидки по истечении заданного периода. Сначала добавим к функции конфигурирования следующий маршрут с пояснением:

Опишем нашу работу со Spring Boot в терминологии Camel. Мы создаем маршруты, используя язык Java DSL. Затем мы используем таймер — компонент timer, предоставляемый Camel путем расширения. «Внутри» Camel при этом происходит следующее: при достижении конечной точки таймера (исходя из заданных нами настроек задержки и периода выполнения) запускается производитель.

Теперь определим маршрут make-discount, который должен быть уникальным и на который мы будем ссылаться в дальнейшем. И вызовем функцию makeDiscount в bean-компоненте discountService. Для сообщения выполняется обмен, на который можно сослаться с помощью префикса к основному тексту, и средство ведения журнала потребляет это сообщение, записывая в журнал. Полный список выражений, которые вы можете использовать, приведен в документации по языку Simple. Добавим под имеющимся маршрутом еще один, позволяющий перечислить все продукты с обновленными ценами.

6.2. Создание конечных точек REST

Резюме

В этой статье мы рассмотрели, как интегрировать Apache Camel со Spring Boot. Мы кратко описали, что представляет из себя Apache Camel и как его можно интегрировать со Spring Boot на примере реалистичных сценариев. Исходный код приложения доступен на Github.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *