Apache Camel - Обзор
Camel - это черный ящик, который получает сообщения от одной конечной точки и отправляет их на другую. В черном ящике сообщения могут обрабатываться или просто перенаправляться.
Так зачем для этого есть рамки? В практических ситуациях, как показано во введении, может быть много отправителей и много получателей, каждый из которых следует своему собственному протоколу, например ftp, http и jms. Система может потребовать множество сложных правил, например, сообщение от отправителя A должно быть доставлено только B и C. В некоторых ситуациях вам может потребоваться перевести сообщение в другой формат, который ожидает получатель. Этот перевод может зависеть от определенных условий в зависимости от содержания сообщения. По сути, вам может потребоваться перевод между протоколами, склеивание компонентов вместе, определение правил маршрутизации и обеспечение фильтрации на основе содержимого сообщения. Это показано на следующем рисунке -
Чтобы удовлетворить вышеуказанные требования и разработать правильную архитектуру программного обеспечения для многих таких ситуаций, в 2003 году Грегор Хоуп и Бобби Вульф задокументировали шаблоны интеграции предприятия ( EIP ). Apache Camel обеспечивает реализацию этих шаблонов, и цель этого руководства - научить вы узнаете, как использовать Camel в ситуациях, подобных описанной во введении.
Apache Camel - это фреймворк с открытым исходным кодом. Это промежуточное ПО, ориентированное на сообщения, которое предоставляет механизм маршрутизации и посредничества на основе правил. Вы можете определить правила, например, если это «молочный» заказ, перенаправить его поставщику молока, а если «масляный» - перенаправить его поставщику масла, и так далее. Используя Camel, вы сможете реализовать эти правила и выполнить маршрутизацию в знакомом Java-коде. Это означает, что вы можете использовать знакомую вам среду разработки Java IDE для определения этих правил в типобезопасной среде. Нам не нужно использовать файлы конфигурации XML, которые обычно бывают громоздкими. Однако Camel поддерживает конфигурацию XML через платформу Spring, если вы предпочитаете использовать XML для настройки правил. Вы даже можете использовать файлы конфигурации Blueprint XML и даже Scala DSL, если вы любитель Scala. Это также означает, что вы можете использовать вашу любимую Java, Scala IDE или даже простой редактор XML для настройки правил.
Входными данными для этого движка могут быть текстовый файл с разделителями-запятыми, POJO (обычный старый объект Java), XML - это любой из нескольких других форматов, поддерживаемых Camel. Точно так же выходные данные механизма могут быть перенаправлены в файл, в очередь сообщений или даже на экран вашего монитора, чтобы вы могли просматривать заказы, отправленные соответствующим поставщикам. Они называются конечными точками, и Camel поддерживает шаблон EIP конечной точки сообщения . Конечные точки Camel обсуждаются позже в главе Конечные точки.
Camel обычно используется с Apache ServiceMix , Apache ActiveMQ и Apache CXF для реализации сервис-ориентированных архитектур.