Обмен сообщениями Java: разница между ActiveMQ, Mule, ServiceMix и Camel - PullRequest
50 голосов
/ 24 апреля 2010

Я новичок в Messaging и хочу узнать разницу между ActiveMQ, Mule, ServiceMix и Camel

Кто-нибудь знает, чем отличается каждый из этих продуктов?

Заранее спасибо!

РЕДАКТИРОВАТЬ: Также хотел бы знать любое хорошее место / ресурс, чтобы узнать эти вещи.

Ответы [ 6 ]

75 голосов
/ 24 апреля 2010

ActiveMQ - это брокер сообщений, который реализует JMS API и поддерживает количество клиентов на разных языках и сетевых протоколов . Он позволяет создавать очереди или темы и писать слушателей или подписчиков для ответа на события очереди.

Mule и ServiceMix - это ESB с открытым исходным кодом (корпоративная служебная шина). ESB обладает возможностями, выходящими за рамки JMS: организация очередей является ключевым фактором, но также важны преобразования, маршрутизация, ведение журналов, безопасность и т. Д.

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

JMS является фундаментом для других технологий, например, JDBC является основой для Hibernate, iBatis и т. Д.

JMS - это API-интерфейс Java, а также спецификация и TCK (часть Java EE). ActiveMQ является частной реализацией этого.

Camel может использовать ActiveMQ (и Camel входит в состав брокера ActiveMQ, поэтому вы можете легко маршрутизировать JMS и другие компоненты, поддерживаемые Camel)

Camel не использует Mule или ServiceMix напрямую; хотя ServiceMix использует Camel в качестве предпочтительного механизма маршрутизации и реализации EIP. Верблюд имеет тонну различных компонентов , хотя в них используются различные технологии.

54 голосов
/ 25 апреля 2010

Сначала давайте определимся

JMS - это J ava M essaging S спецификация протокола обслуживания.
ESB является E nterprise S ervice B us.
JBI - J ava B удобство I интеграция.

Теперь мы можем ответить подробнее:

Apache ActiveMQ - реализация вышеупомянутого JMS ( J ava M essaging S ervice) .

Apache Camel - это механизм маршрутизации сообщений, реализующий шаблоны корпоративной интеграции.
Он предоставляет множество предопределенных компонентов.
Один из его ключевых компонентов поддерживает JMS ( J ava M essaging S ervice).

Apache ServiceMix - это реализация вышеупомянутого ESB ( E nterprise S ervice B us)
совместим со спецификацией JBI ( J ava B usiness I ntegration).
Он также предоставляет множество инфраструктурных функций, недоступных в Camel (например, поддержка пакетов OSGI для служб).
SM интенсивно использует Camel.

Mule - это еще одна реализация ESB ( E nterprise S ervice B us), но не относится к семейству Camel / ServiceMix.

1 голос
/ 22 ноября 2016

Верблюд дает вам возможность определять правила маршрутизации и посредничества на различных предметно-ориентированных языках. Mule и SeriviceMix - это ESB. ActiveMQ - служба сообщений.

1 голос
/ 26 мая 2016

Mule - это сервисная шина Enterprise, предоставляющая комплексное решение для интеграции.

ActiveMQ - брокер сообщений для организации очередей сообщений между подписчиком и получателем.

ServiceMix также является ESB, т. Е. Enterprise Service Bus

1 голос
/ 06 марта 2014

Apache Service Mix :: Это ESB (Enterprise Service Bus), JBI-контейнер и платформа интеграции.

Apache Camel: интеллектуальная система маршрутизации и посредничества, которая реализует EIP (шаблоны корпоративной интеграции).

Apache ActiveMQ: это брокер сообщений, который реализует JMS.

0 голосов
/ 24 мая 2016

Apache Camel - это реализация EIP (Enterprise Integration Patterns)

ServiceMix - это продукт, который соответствует принципам ESB в среде SOA.

Active MQ так же хорош, как и любая другая реализация JMS API

Мул также ESB

...