HornetQ Core API и JMS - PullRequest
       24

HornetQ Core API и JMS

3 голосов
/ 07 ноября 2011

У меня есть несколько вопросов относительно HornetQ:

  1. В чем различия между основным API HornetQ и JMS API?

  2. Есть ли какие-либо преимущества или недостатки при использовании одного из них?

  3. Правда ли сказать, что я использую основной API, а затем я решаю изменить мою шину обмена сообщениями (скажем, ActiveMQ), то я должен изменить все мои коды?

1 Ответ

5 голосов
/ 08 ноября 2011
  1. HornetQ Core API - это собственный API от HornetQ, в то время как JMS API - это стандартный API, определенный в процессе сообщества Java.

  2. Есть несколько функций, которые не поддерживаются в JMS API, которые доступны через core-api:

    • Невозможно иметь несколько потребителей по одной подписке на тему (скажем, если вы хотите, чтобы несколько пользователей масштабировали ее лучше)

    • Это более общий способ создания подписки. Вы просто создаете очередь внутри адреса. Очень просто.

    • У нас есть хороший API для асинхронных подтверждений. Нет необходимости блокировать когда-либо, если вы используете эту функцию.

Преимуществом JMS является мобильность. Ваш код остается прежним, если вы решили перейти от одного поставщика к другому.

Недостатком JMS является то, что ему не хватает некоторых функций, и он немного многословен, что сейчас работает над JMS 2 JSR.

  1. Да, потому что, как я уже говорил, API-интерфейс Hornetq-core является проприетарным API, поэтому он будет работать только на HornetQ. Так же, как некоторые системы сообщений будут иметь собственный API.

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

...