Как RabbitMQ сравнивается с Mule
Как RabbitMQ сравнивается с Mule, я собираюсь создать приложение с использованием архитектуры, ориентированной на сообщения, и AMQP (RabbitMQ) предоставляет все, что я хочу, но я озадачен таким большим выбором технологий и подобными концепциями, как ESB. У меня есть сомнения, если я делаю выбор, не рассматривая другие альтернативы.
Мне в основном ясно, что RabbitMQ является брокером сообщений, и он помогает мне в посредничестве сообщения между производителем и потребителем (подписываются все формы или публикации, и я могу понять, как его использовать, на реальных примерах, таких как твиттер, обновления в Facebook и т. Д.)
Что такое Мул, если бы я мог добиться того, что я делаю в RabbitMQ, используя мул, должен ли я считать мул похожим на RabbitMQ?
У мула есть иная цель, чем у брокера сообщений?
Предполагает ли мул, что в основе его лежит брокер сообщений, который доставляет сообщение соответствующим слушателям мулов (я мог бы легко написать слушатель в RabbitMQ)
Это полная система баз Java (текущий эксперимент, который я проводил с RabbitMQ, занял у меня менее 30 минут, чтобы написать простой RPC Client Server с клиентом в качестве C# и сервером в качестве Java, будут ли такие вещи выполняться в Mule легко).
4 ответа
Mule - это ESB (Enterprise Service Bus). RabbitMQ - брокер сообщений.
ESB предоставляет дополнительные уровни поверх брокера сообщений, такие как маршрутизация, преобразования и управление бизнес-процессами. Он является посредником между приложениями, интегрирующими веб-службы, конечные точки REST, соединения с базой данных, электронную почту и FTP-серверы - вы называете это. Это магистраль интеграции высокого уровня, которая управляет взаимодействием в сети приложений, которые говорят на разных протоколах.
Посредник сообщений - это компонент более низкого уровня, который позволяет вам как разработчику передавать необработанные сообщения между издателями и подписчиками, как правило, между компонентами одной и той же системы, но не всегда. Он используется для включения асинхронной обработки для поддержания низкого времени отклика. Некоторые задачи занимают больше времени, и вы не хотите, чтобы они задерживались, если они не чувствительны ко времени. Вместо этого отправьте сообщение в очередь (в качестве издателя) и попросите подписчика забрать его и обработать "позже".
Mule - это сервис "более высокого уровня", реализованный с помощью брокера сообщений. Из документов
Магистраль обмена сообщениями ESB обычно реализуется с использованием JMS, но можно использовать любую другую реализацию сервера сообщений.
Вы можете построить ESB с кроликом; однако вы будете ограничены отправкой пакетов byte[], и вам придется строить свою систему из примитивов обмена сообщениями, таких как темы и очереди. Это может быть немного быстрее (на основе абсолютно без бенчмаркинга, тестирования или данных), потому что существует меньше уровней перевода. Помимо этого, Mule предоставляет абстракцию, говорит на разных транспортах и может обрабатывать некоторую логику маршрутизации.
RabbitMQ, программное обеспечение брокера сообщений с открытым исходным кодом, написано на языке программирования Erlang и построено на платформе Open Telecom для кластеризации и отработки отказа. Он прост в использовании, поддерживает огромное количество платформ для разработчиков и работает на всех основных операционных системах. Он работает по концепции под названием Exchange. Мул соединяет RabbitMQ с разъемом AMQP.
Кролик относится к эпохе клиент-сервер, а Mule относится к эпохе API Network. Если вы не вынуждены внедрять его в рамках устаревшей платформы, лучше использовать API Mule и Rest. Как бы то ни было, через несколько лет код, который вы написали для Rabbit, должен быть модифицирован для поддержки архитектуры настоящего и будущего на основе API. Так почему бы не сделать это сейчас? мои несколько центов.
Mule - это сервисная шина Enterprise, предоставляющая комплексное решение для интеграции, где Rabbit является брокером сообщений для организации очередей сообщений между абонентом и получателем.