Apache Camel и другие продукты ESB

Эй,
Если у нас есть Apache Camel, зачем использовать другие решения, такие как Apache ServiceMix и Mule?
Есть ли что-то, что Apache Camel не может сделать по сравнению с этими продуктами?
Когда использовать Mule/ServiceMix и когда использовать Camel?

Ответ 1

Apache Camel - это библиотека, которая реализует шаблоны интеграции предприятия (EIP). Хотя он может использовать Spring как свою инфраструктуру IOC, он даже не зависит от Spring, поэтому он полностью независим от платформы. Это "просто" библиотека. Таким образом, вы можете запустить его в любой среде JVM, например. простой jvm, сервлет, ejb, osgi. Это не приносит никаких преимуществ (или накладных расходов) контейнера, такого как Mule. Это, на мой взгляд, более чистое разделение проблем в этой области.

Mule также может быть встроен в разные среды, но я думаю, что Mule имеет как преимущества, так и недостатки связывания своей библиотеки EIP с их контейнером. Когда вы развертываете Mule внутри среды сервлета или ejb, действительно ли вы хотите нести весь этот багаж контейнера Mule? Я не эксперт по Mule, и я думаю, что вы, вероятно, можете потратить сравнительно скромные усилия и устранить некоторые из избыточных возможностей. (Обратите внимание, что это не плохая возможность во всех случаях, она просто избыточна, если вы запускаете встроенный в другой контейнер.)

Apache ServiceMix - это контейнер OSGI, который использует Camel для реализации EIP в качестве основы ESB. Хотя ServiceMix исторически начинался с его корней в JBI, он отошел от JBI и превратился в (IMO) красивую многоуровневую архитектуру, объединяющую лучшие в своем классе Apache CXF, Camel и ActiveMQ в контейнере OSGI. Основное значение здесь не является сервисом ServiceMix и его поддержкой JBI, но базовый стандарт контейнера OSGI связан с проверенными транспортными средствами Apache, такими как CXF для веб-сервисов и ActiveMQ для JMS. OSGI - это зрелый стандарт, который предлагает контейнер, который обращается к тем же типам "DLL", которые преследовали Microsoft до появления .NET. Хотя ни .NET, ни OSGI не решают существенную сложность основной проблемы, они, по крайней мере, предоставляют средства для ее решения. OSGI имеет и другие преимущества, но с точки зрения выбора продукта основной контейнер, основанный на стандартах, и его существенная функция, которую Mule (и Java в целом) не адресует, - это управление зависимостями.

Некоторые важные вещи, которые следует учитывать при сравнении Mule с сообществами Apache. Мул походит на Redhat в том смысле, что, хотя это лицензия с открытым исходным кодом, на мой взгляд это не открытое сообщество. Любой может участвовать в Apache, тогда как MuleSoft владеет сообществом Мула и заключительной дорожной картой. Во-вторых, хотя сообщество Mule, возможно, довольно активно, я думаю, что сообщество Apache намного больше (и, естественно, потому что это не закрытое сообщество). Оба подхода имеют как плюсы, так и минусы. Одним из позитивных для подхода Apache является наличие нескольких поставщиков для ESB на основе Camel, CXF, ActiveMQ и OSGI. Например, Talend предлагает ESB по тем же основным технологиям без истории ServiceMix JBI. Это имеет как плюсы, так и минусы в сообществе Apache, но реальная точка заключается в том, чтобы подчеркнуть разницу между Apache и Mule. Вы не найдете многопрофильных поставщиков в сообществе Мула. Таким образом, IMO Apache ESB, такой как Talend или ServiceMix, является более широким и более всеобъемлющим и в конечном итоге конкурентным сообществом, чем закрытое сообщество, такое как Mule.

Эд Ост

Ответ 2

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

Стратегически говоря

  • Apache Camel остался верен своим корням и не превратился в супертяжелую или полноценную платформу времени исполнения. Он универсален и модулен и может работать:

    • Встроенный в любом виде контейнера Java (контейнер сервлетов, сервер приложений, Spring Загрузка).
    • Автономный как процесс Java.
    • Внутри среды OSGi (Apache Karaf).
  • Apache Camel продолжает развиваться и получать ежемесячную тягу и активность, как показано графиком в этой точке, которую я извлек из OpenHub. Пользовательская база также увеличивается.

Apache Camel Contributors per Month

  • В 2012 году Red Hat приобрела FuseSource, один из главных промоутеров и разработчиков Apache Camel, ActiveMQ, ServiceMix и CXF. Несколько коммиттеров и членов PMC теперь работают Red Hat для работы с Apache Camel.

  • Mule ESB предлагает две версии своего продукта: Сообщество (бесплатно по лицензии CPAL) и Предприятие (оплачивается). Они определяют свою версию Community как:

Идеально подходит для оценки или предварительного производства.

= > Предположим, что вам необходимо приобрести оплаченную корпоративную подписку для использования в продуктах.

  • Фактически, Mule ESB Community Edition распространяется под лицензией закрытым сообществом.

  • Последнее, но не менее важное; возможно, самая важная часть. Вот что говорит Google Trends о Mule ESB против Apache Camel. Обратите внимание, что я использую новое семантическое измерение тем для более высокой точности, а не стандартные ключевые слова запроса. Таким образом, мы не измеряем популярность животных (Mule vs Camel), а Software! Интерпретация: Мул сильно сократился с 2007 по 2011 год, в то время как Apache Camel развился. С 2011 года Mule имеет плато, а Apache Camel продолжает расти здорово!

Mule vs Camel в Google Trends

Техническая эволюция Apache Camel

Просто хотел дать вам некоторые функциональные показатели эволюции Apache Camel с 25 сентября 2010 года, когда вы изначально задали вопрос. Это было исходное дерево в этот момент времени.

  • В то время у Camel было 88 компонентов, теперь у него 220 компонентов, включая интеграцию с Facebook, Twitter, Salesforce, Apache Ignite, Apache Cassandra, AWS, Apache Kafka, MongoDB, Apache Spark и т.д.
  • Многие технические усовершенствования: Асинхронный механизм маршрутизации, История сообщений, Автоматический выключатель EIP, много улучшений и улучшений для EIP, таких как агрегация, разделение, динамическая маршрутизация и т.д.
  • В настоящее время экосистема также включает Hawtio для мониторинга и управления, fabric8 для развертывания и т.д.
  • С тех пор было решено больше 5500 билетов, включая новые функции, улучшения, ошибки и т.д.
  • И многое, многое другое!

Заключительные примечания

Оба продукта сильно изменились за последние 5,25 лет! Однако из-за различий в лицензиях и характера сообщества Mule ESB и Apache Camel я не думаю, что они сопоставимы друг с другом.

Apache Camel полностью Open Source ❤️, а Mule ESB Community требует от пользователей атрибута Mulesoft и публикации исходного кода программного обеспечения, использующего Mule. Лицензия на программное обеспечение Apache - это бизнес-дружественная лицензия: вы можете использовать Camel без атрибуций и других требований. Действительно бесплатно, как в пиве!

Надеюсь, что это отражение последних лет помогает новым зрителям!:)


Отказ от ответственности: я являюсь участником и членом PMC в проекте Apache Camel.

Ответ 4

В Apache Camel есть некоторые часто задаваемые вопросы, которые проливают свет на этот http://camel.apache.org/faq

И коллекция ссылок на Apache Camel http://camel.apache.org/articles.html

Есть некоторые ссылки, где люди в сообществе разговаривают и сравнивают Camel с другими проектами.

Ответ 5

Camel - это механизм посредничества, а Mule - легкая платформа интеграции. Разница в том, что Mule предлагает все возможности ESB, включая контейнер для развертывания приложений, REST и веб-сервисов. Mule может быть встроен таким же образом, как Camel, чтобы разработчики приложений могли внедрять там код приложения с кодом интеграции. Оба тесно интегрируются с Spring.

Mule не использует JBI по уважительным причинам, и теперь, когда спецификация JBI была распущена (ни одна рабочая группа, принадлежащая Oracle, которая прошла первоначально JBI), нет никакой хорошей профессиональной или технической причины для использования JBI.

Ответ 6

Клаус, есть ряд ошибок в FAQ Camel, неудивительно, что ни одна из них в нашу пользу:)

  • модель UMO в Mule больше не находится в Mule. Мы начинаем отходить от этой модели в Mule 2, и она полностью изменилась в Mule 3. Теперь у нас есть очень простая модель Message Processor, которая делает ваше утверждение об этом избыточным.
  • У Мула было явное преобразование типа в течение нескольких лет, это не является отличием для Camel
  • Mule лицензируется по лицензии одобренной OSI CPAL 1.0. Это лицензия с открытым исходным кодом, а не коммерческая. Пожалуйста, обновите это как можно скорее.

Ответ 7

Сначала вам нужно понять, что Service Mix похож на контейнер, который может запускать код Apache Camel, а Mule ESB - отдельный продукт сам по себе

Между ESB-продуктами может быть много различий.

Вы должны знать несколько вещей, прежде чем искать дифференциацию. Они

  • Как разрабатываются продукты.
  • Лицензирование
  • Его функции поддержки
  • Открытый исходный код или нет
  • Если исходный код источника может быть изменен и использован и так далее.

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

Вторичная разница продукта будет специфичной для инструментов и ее домена. Вероятно, это ответ, который вы ищете. Найдите список, который вам нужно изучить, прежде чем делать выбор.

  • Поддержка сообщества
  • Стек продукта
  • Расширяемость с точки зрения изменения собственного кода
  • Умение и удобство использования
  • Поддержка продукта при покупке как предприятия

Это, вероятно, исследование, которое вам нужно сделать самостоятельно, чтобы выбрать разницу. Любые способы добавления многих добавок делают продукт подходящим для вашей организации, а не лучше всего говорят на рынке.

Когда дело доходит до верблюда Apache или другого ESB. Различие, которое будет сделано, это

  • Число транспорта
  • Apache Camel предоставляет вам разнообразие DSL над Mule, а другие - это то, что у них нет нескольких DSL, как в Camel.
  • Mule в своем стеке продуктов содержит управление API и внутренние соединители Cloud, где Apache Camel является основой при использовании FUSE ESB. JBoss Stack предоставляет достойное количество других продуктов, которые могут дополнять ваш выбор.