Java Message Service :
Сила JMS заключается в том, что вы можете иметь несколько производителей и несколько потребителей для одной очереди, а брокер JMS управляет нагрузкой.
Минимальная связАнноть между приложениями.(независимость)
Асинхронность - это главная причина создания и использования JMS.
Некий стандарт передачи сообщений в Java.
Так же как и JPA , у JMS есть провайдеры , которые реализуют этот стандарт.
Сообщения теряются !! Сообщения дублируются !!!
Роли :
Типы доставки сообщений :
- Point to Point
- Publisher to Subscriber
Типы распространения сообщений :
- Очередь - получает сообщение только один из слушателей ! редко используется ! плюсы очереди (якобы) балансировка между слушателями!
- Топик - получают сообщение все слушатели !
Модели подтверждения получения сообщений :
- AUTO_ACKNOWLEDGE - в случае синхронного получения сообщений, подтверждение получения будет произведено автоматически, когда метод receive() возвратит значение не вызвав никакой исключительной ситуации. В случае асинхронного получения сообщений, подтверждение получения будет произведено, когда метод onMessage() вернет значение.
- DUPS_OK_ACKNOWLEDGE - работа по подтверждению получения сообщения перекладывается на Session. Сообщения будут вновь доставлены в случае возникновения ошибки или "гибели" системы.
- CLIENT_ACKNOWLEDGE - клиент должен вызвать метод acknowledge() интерфейса javax.jms.Message для того, чтобы явно подтвердить получение сообщения. При вызове данного метода будет подтверждено получение текущего и всех предадущих полученных сообщений.