Можно ли использовать очередь сообщений JMS в этом контексте для моего варианта использования? - PullRequest
1 голос
/ 23 августа 2011

Я новичок в системе очередей сообщений и немного читал о JMS в частности. Этот вопрос также был полезен для лучшего понимания случая использования JMS в реальном мире.

Наше веб-приложение, и я пытаюсь выяснить, может ли конкретный поток в контексте нашего приложения эффективно использовать JMS. Контекст объясняется ниже:

В приложении есть Событие электронной почты , которое будет вызывать электронную почту для набора предопределенных слушателей, всякий раз, когда событие происходит в приложение. Событие может быть Консультантами, отправляющими расписание, Консультанты, подающие заявку и т. Д. Приложение позволяет настроить разный набор слушателей для разных событий.

Мой вопрос здесь заключается в том, можно ли использовать JMS вместо запуска электронных писем, чтобы оно было свободно / не связано с логикой приложения (в данном случае отправка расписания / затрат), не дожидаясь, пока все электронные письма будут доставлено слушателям. Имеет ли смысл использовать JMS в этом контексте? Я также хочу понять, является ли мое восприятие / представление об архитектуре JMS правильным в этом отношении. Комментарии / идеи / мысли / предложения / советы от опытных пользователей очень ценятся.

ПРИМЕЧАНИЕ: Наши инструменты торговли: Java, JDK1.6, JSP, Apache Tomcat v6.0.10, PostgreSQL v8.2.3

1 Ответ

2 голосов
/ 23 августа 2011

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

Например, type='timesheet' from='Consultant' выберет только таблицы, представленные консультантом. Другой селектор type='expenses' from='Bookkeeper' будет получать другие события (и, вероятно, будет форматировать электронную почту по-другому.

А этот: type='systemcrash' from='monitor' отправит СМС системному администратору в 3:00 утра, воскресенье:).

...