Альтернативы JMS для очередей - PullRequest
1 голос
/ 07 февраля 2012

У нас есть веб-сервис REST, который получает запросы от внешних систем и соответственно обновляет нашу БД.Я рассчитываю реализовать решение для кэширования / организации очередей для входящих запросов, поскольку в последнее время у нас возникали некоторые проблемы с сервером БД, и мы потеряли некоторые сообщения, когда сервер БД вышел из строя.

Перед началом работыСобирая простую постоянную файловую очередь, я хочу посмотреть, есть ли какие-нибудь хорошие альтернативы JMS, поскольку в нашей среде его использование ограничено.

Текущие платформы: Jboss 4.3 Richfaces 3.3 Spring 3.0.5 RESTEasy

** ОБНОВЛЕНИЯ **

По вопросу скаффмана ниже, мои требования к кластеризации, транзакциям и т. Д.

  • Кластеризация: наши веб-серверы и серверы приложений все кластеризованы, поэтому очереди должны быть в состоянии обрабатывать элементы со всех узлов кластера.Тем не менее, наши коммиты в основном атомарны, поэтому вопросы упорядочения и синхронизации крайне минимальны.Потоковая и кластерная безопасность на самом деле не является фактором.Отдельных / независимых очередей в каждом кластере будет достаточно.

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

  • Безопасность: умеренное беспокойство, но я ожидаю, что это будет решаться нашей обычной безопасностью в веб-сервисе.Я бы не ожидал, что что-то будет читать или писать в очереди, кроме самого веб-приложения.Это будет необходимо только в случаях большого объема или при недоступности БД.

Спасибо,

Майк

1 Ответ

0 голосов
/ 20 июля 2013

Для одного проекта мы использовали очередь (HornetQ), но были интегрированы в войну и развертываемы на Tomcat, потому что заказчик не хотел серверы приложений Weblogic или JBoss, но если ваша политика ограничения распространяется и на архитектуру вашего приложения, например решение будет запрещено.

Для другого проекта мы не использовали никакой реализации JMS, и мы делаем асинхронную реализацию, используя базу данных сообщений и Service Activator инфраструктуры интеграции пружин для использования событий , Таким образом, любой издатель сообщений просто вставляет строку в таблицу БД, а Service Activator вызывает событие и вызывает любую другую службу (Spring, Web-сервис и т. Д.).

...