Продължете към съдържанието
Начало » Блог » Какво представлява Java Message Service

Какво представлява Java Message Service

Java Message Service (JMS) е стандартен Java API, който позволява на приложенията да комуникират помежду си чрез асинхронно изпращане на съобщения. JMS е част от Java EE (сега Jakarta EE) и служи за свързване на разпределени компоненти в устойчив и слабо-свързан начин.


Основна идея:

JMS позволява едно приложение (Producer) да изпрати съобщение, което да бъде получено от друго приложение (Consumer) по асинхронен начин чрез брокер на съобщения.


Основни компоненти:

Компонент Описание
Producer Създава и изпраща съобщения
Consumer Получава и обработва съобщения
Message Обектът, който съдържа данните (текст, обекти и др.)
Destination Къде отиват съобщенията – може да е Queue или Topic
ConnectionFactory Фабрика за връзки към JMS
Session Контекст за изпращане и получаване на съобщения
Broker Сървър за маршрутизиране на съобщенията (напр. ActiveMQ, RabbitMQ, Artemis)

Два основни модела на комуникация:

1. Point-to-Point (Queue)

  • Производителят изпраща съобщение към опашка (Queue)
  • Един потребител получава съобщението
  • Подходящо за задачи като обработка на поръчки

Пример: Един сървър изпраща задачи към опашка, работник ги обработва една по една.


2. Publish / Subscribe (Topic)

  • Производителят изпраща съобщение към тема (Topic)
  • Много потребители могат да се абонират и получат съобщението
  • Подходящо за известия, бюлетини и др.

Пример: Нотификация за нова публикация се изпраща до всички абонати.


Пример: Изпращане на текстово съобщение

ConnectionFactory factory = new ActiveMQConnectionFactory("tcp://localhost:61616");
Connection connection = factory.createConnection();
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);

Queue queue = session.createQueue("myQueue");
MessageProducer producer = session.createProducer(queue);

TextMessage message = session.createTextMessage("Hello JMS!");
producer.send(message);

JMS осигурява:

  • Асинхронност – изпращачът не чака получателя
  • Устойчивост – съобщенията могат да се запазват и при срив
  • Транзакционност – възможност за rollback
  • Скалируемост – различни части на система могат да комуникират независимо

JMS се използва в:

  • Системи за обработка на събития (event-driven)
  • Финансови платформи
  • Системи за логистика и поръчки
  • IoT и разпределени приложения