-
Для начала обсудим абстракцию. Аналогично любому промежуточному ПО в Java есть стандарт -
JMS(Java Message Service)
Стоит рассмотреть его по причине того, что в разработке используется именно JMS. Это
абстракция и стандарт, без этого в программировании никуда.
-
Начнем с основных понятий и с интерфейса.
Коммуникация между компонентами, использующими JMS, асинхронна (приложение не дожидается ответа
на своё сообщение) и независима.
JMS поддерживает две модели обмена сообщениями: «точка - точка» и «издатель-подписчик».
-
«точка - точка»
Самое главное - Connection factory! CF - создает подключения (Объект Connection) с
брокером.
Connection создает сессию (Объект Session), а сессия создает очередь (Destination),
производителя (Producer), потребителя (Consumer), сообщение (Message)
Producer может класть сообщения в очередь, которая задается в конструкторе. Consumer
может брать сообщения из очереди, которая также задается в конструкторе.
Вот такой простой и понятный интерфейс.
-
«издатель-подписчик»
Аналогично есть CF. СF - создает подключение (Объект TopicConnection) с брокером.
TopicConnection создает TopicSession, а сессия также очередь и сообщения, но теперь
вместо Producer и Consumer - издатель (Publisher) и подписчик (Subscriber).
Подписчик подписывается на определённую «тему» (Topic, топик).
Издатель публикует своё сообщение. Его получают все подписчики этой темы.
Получатель (Клиент) должен работать и быть подписан в момент отправки сообщения.
-
Вот такой простой интерфейс позволяет, например, строить высоконагруженные банковские
приложения, конечно, это всего лишь абстракция и самый сок находится в реализации этого
интерфейса.
Далее изучим несколько популярных реализаций и соответствующих им брокеров.