Когда использовать Java и Message Broker? - PullRequest
12 голосов
/ 08 августа 2010

Я разработчик в своем офисе, где разработка SOA находится на пике. Мы используем IBM MQ, IBM Message Broker и Java / J2EE Technologies.

В настоящее время я вовлечен в проект, в котором Message Broker используется для разработки промежуточного программного обеспечения, взаимодействующего между двумя приложениями. Я не совсем уверен, является ли Message Broker правильным вариантом для такого рода проектов, поскольку Java может выполнять ту же часть работы гораздо более эффективным способом, что привело меня к поиску в Интернете преимуществ использования этих двух.

Я читал на разных сайтах, что Message Broker используется для преобразования, маршрутизации и улучшения сообщений, это очень хорошо можно сделать с помощью Java. Так что это привело меня к вопросу "Когда использовать Java и когда использовать Message Broker для разработки?" Было бы здорово, если бы кто-нибудь мог помочь мне с преимуществами использования этих двух.

-RDJ

Ответы [ 6 ]

9 голосов
/ 08 августа 2010

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

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

Если бы вы разрабатывали обобщенное решение для преобразования / маршрутизации в Java, вы бы разработали брокер сообщений :) Это было бы интересно, но не очень необходимо, поскольку уже есть множество коммерческих и открытых брокеров сообщений.

4 голосов
/ 08 августа 2010

Как я понимаю, вы пытаетесь, например, реализовать функциональность в ядре Java вместо использования готового Message Broker и аналогичных технологий, связанных с SOA. Мое предложение - не изобретать велосипед. Дело в том, что даже если вы попытаетесь это сделать, в конечном итоге вы столкнетесь с теми же техническими проблемами и приведете к аналогичному решению. Почему бы не сосредоточиться на бизнес-логике, вместо того, чтобы пытаться разработать эквивалент чего-то, что уже есть, что, вероятно, более проверено и заслуживает доверия.

2 голосов
/ 09 января 2012

С более практической точки зрения, WebSphere Message Broker предлагает способ интеграции не-Java-приложений (C, COBOL, PHP, VB ...), которые часто трудно реализовать с помощью Java.

Кроме того, Java не особенно подходит для обработки XML. И ESQL, и XSLT - гораздо лучшие средства для преобразования XML, чем Java.

Брокер сообщений Webshpere также может работать с сообщениями вне ограничений JMS (он также может работать с JMS).

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

1 голос
/ 17 апреля 2013

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

0 голосов
/ 04 сентября 2014

Первое, что нужно понять, это то, что Java-API для Broker расположен поверх C-API и не дает вам полного доступа ко всем доступным функциям.

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

Это сказало, что это все еще полезно в особых обстоятельствах. Одним из примеров, где я использовал его, было сопоставление слияния некоторого содержимого сообщения. В основном сценарий был получить Msg1, содержащий 2000+ элементов, а затем получить соответствующее сообщение Msg2, содержащее 2000+ элементов, который предоставил дополнительную информацию.

Таким образом, в ESQL вы начинаете с Msg1.element [1], а затем сканируете Msg2 на соответствие, чтобы оптимизировать, вы можете удалять элементы из Msg2 по мере их использования. Тем не менее, это было ужасно дорого с точки зрения процессора, особенно после того, как ситуация начала увеличиваться с 2000+ до 5000+. И это заняло много времени, более 5 минут для действительно больших сообщений.

Альтернативой было использование вычислительного узла Java и загрузка содержимого второго сообщения в объект дерева Java, что сократило время обработки примерно до 3 секунд.

Так что, если вы просто выполняете преобразование, держитесь подальше от вычислительного узла Java. Однако, если вы делаете что-то более сложное и / или интенсивно использующее процессор, обязательно попробуйте вычислительный узел Java.

0 голосов
/ 28 августа 2014

Websphere Message Broker - это ESB, тогда как Java - это язык программирования.Существуют ESB, которые используют Java в качестве языка реализации, такие как Axis, Fuse, но достаточно ли они мощны для анализа XML, организации сервисов, интеграции с системами мэйнфреймов. Проектирование и разработка веб-сервисов в Message Broker просты и удобны для пользователя .ESQL, как правильно указаномощен для преобразования XML, а обработка - это язык реализации, используемый в Message Broker.Опять же, интеграция с узлами MQ, HTTP, File является бесшовной и эффективной в МБ.

...