Похожие презентации:
Message queueing system
1.
Message Queueing System2.
Системы обмена сообщение - это инструмент разработки программного обеспечения,который используется для передачи сообщений между различными приложениями и
компонентами системы
Используемые MQS
Apache ActiveMQ
RabbitMQ
Kafka
AWS SNS/SQS
3.
Java Message Service (JMS) — стандарт промежуточногоПО для рассылки сообщений, позволяющий приложениям
создавать, посылать, получать и читать сообщения.
Коммуникация между компонентами, использующими
JMS асинхронна
JMS поддерживает две модели обмена сообщениями:
«точка - точка» и «издатель-подписчик».
Модель «точка - точка» характеризуется следующим:
Каждое сообщение имеет только одного адресата
Сообщение попадает в «почтовый ящик», или «очередь»
адресата и может быть прочитано когда угодно. Если адресат
не работал в момент отсылки сообщения, сообщение не
пропадёт.
После получения сообщения адресат посылает извещение.
Модель «издатель-подписчик» характеризуется
следующим:
Подписчик подписывается на определённую «тему»
Издатель публикует своё сообщение. Его получают все
подписчики этой темы
Получатель должен работать и быть подписан в момент
отправки сообщения
4.
5.
Реализация спецификации Java Message ServiceActiveMQ поддерживает синхронный и асинхронный режимы отправки сообщений
брокеру.
Компоненты Active MQ
Брокер - центральная часть архитектуры распределяющая сообщения
Клиент - система для получения и обработки сообщений
Wire Protocol - протокол для передачи данных
https://habr.com/ru/articles/471268/
https://www.youtube.com/watch?v=-0La8Dscp6k&t=679s
6.
Использование брокера сообщений - это поиск баланса между скоростью ибезопасностью
В AMQ реализовано несколько стратегий сохранения данных
Для реализации используются внутренние адаптеры персистентности
Для записи на диск
2. Для записи в БД
1.
7.
1.Брокер получает сообщение
2.
Происходит запись события в лог-журнал на диске
3.
Происходит вычитывание событий в журнале
4.
После успешного прочтения данных данные записи удаляются
8.
ConnectionFactory - интерфейс верхнего уровня, используемый для установлениясоединений с брокером. В ActiveMQ — это ActiveMQConnectionFactory.
Connection - долгоживущий объект, существует в течение всего жизненного цикла
приложения до его закрытия. Connection — потокобезопасный и может работать с
несколькими потоками одновременно.
Session — это основной транзакционный дескриптор. Позволяет коммитить/откатывать
операции обмена сообщениями. Используется для создания Message, MessageConsumer
и MessageProducer, а также получает указатели на объекты Topic и Queue.
9.
MessageProducer - интерфейс позволяет отправлять сообщение адресатуMessageConsumer - интерфейс позволяет разработчику получать сообщения. Существует два механизма
извлечения сообщения:
Регистрация MessageListener. Это реализованный вами интерфейс обработчика сообщений, который будет
последовательно обрабатывать любые сообщения, выдаваемые брокером, используя один поток.
Опрос (polling) на наличие сообщений с помощью метода receive ().
Message - транспорт данных. Сообщения в JMS состоят из двух аспектов:
Метаданные сообщения. Сообщение содержит заголовки и свойства.
Заголовки — это хорошо известные элементы, определенные спецификацией JMS и доступные напрямую
через API,
Свойства — это произвольные фрагменты информации о сообщении, которые задаются для упрощения
обработки или маршрутизации сообщений.
Тело сообщения.
10.
11.
Низкая пропускная способностьНеобходимость создавать индексы для работы журнала
Использование одного журнала для всех очередей - создаёт большое количество
конфликтов и блокировок
Если журналах логирования остаются данные, то со временем растёт объём
используемой памяти