Добавил:
Кафедра ВТ Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lab4.docx
Скачиваний:
2
Добавлен:
08.04.2023
Размер:
710.46 Кб
Скачать
  1. 3. Ход работы

Во-первых, необходимо запустить брокер сообщений (приложения в распределённых системах, которое преобразует сообщение от пункта источника к пункту назначения) «Apache Active MQ». Его страница доступна по адресу «http://127.0.0.1:8161/» с именем пользователя «admin» и паролем «admin». Если перейти по ссылке «Manage ActiveMQ broker», то можно будет просмотреть статистику этого брокера (Name – имя, Version – версию, ID и Uptime – время работы). Далее, если зайти в раздел «Queues», то можно увидеть название очереди, в которую будут отправляться сообщения, например, «jms.queue1», а также статистику сообщений в данной сессии: Number Of Pending Messages – количество ожидаемых сообщений, Number Of Consumers – количество активных получателей сообщений, Messages Enqueued – количество отправленных сообщений в очередь и Messages Dequeued – количество полученных сообщений из очереди.

Рисунок 1. Начальная страница брокера сообщений «Apache Active MQ»

Рисунок 2. Страница «Manage ActiveMQ broker» брокера сообщений «Apache Active MQ»

Рисунок 3. Раздел «Queues» брокера сообщений «Apache Active MQ»

После запуска брокера сообщений «Apache Active MQ» необходимо запустить Senders – отправителей и Recievers – получателей (согласно схеме сообщений «Queue»). В данной лабораторной работе мы не будем запускать напрямую какой-либо из классов (Sender или Reciever), мы будем запускать управляющий класс, в котором будет определяться тип приложения согласно параметрам запуска, указанными нами. В качестве параметров будут указываться следующие значения: factoryName, queueName, username и typeSenderOrRecieverOrBoth, где factoryName – имя фабрики создания очереди, queueName – имя очереди, к которой мы будем подключаться, в которую мы будем отправлять сообщения или из которой будем получать сообщения (если хотим соединить, то должна быть одинакова), username – имя приложения, typeSenderOrRecieverOrBoth – тип приложения («sen» – Sender, «rec» – Reciever или «both» – Sender и Reciever одновременно). Например, «QueueCF queue1 Gay both».

Очевидно, что Sender («sen») сможет только отправлять сообщения, но никогда не сможет их получить. Reciever («rec») сможет только получать сообщения, но никогда не сможет их получить. Sender и Reciever одновременно (параметр «both») смогут как отправлять сообщения, так и получать сообщения. Эти различия очень хорошо показаны на скриншотах, где, например, сообщения от Reciever не читаются и, соответственно, нигде не появляются, а сообщения от других приложения не появляются у Sender. Также сообщения, отправленные приложением, которое является Sender и Reciever одновременно, могут появиться у него же самого. К тому же, приложения типа Sender не будут учитываться в разделе «Numbers Of Consumers», а приложения типа Reciever и типа Reciever и Sender одновременно будут.

Связка «Queue» подразумевает передачу сообщений peer-to-peer, то есть от одного объекта к другому. Поэтому, в отличие от связки «Topic», которая передаёт сообщение всем подписчикам, связка «Queue» будет передавать одно сообщение только одному приложению. Это особенно полезно в тех случаях, когда распределённой системе требуется работать с огромным объёмом непрерывно поступающей информации, когда можно разделить сообщения на несколько устройств, тем самым «распараллелив» процессы. В «Apache ActiveMQ» при наличии нескольких получателей сообщения каждый раз будут приходить на разные приложения.

Рисунок 4. Запуск и работа брокера сообщений «Apache Active MQ»

Рисунок 5. Запуск и работа приложения типа Sender и Reciever одновременно

Рисунок 6. Запуск и работа приложения типа Sender

Рисунок 7. Запуск и работа приложения типа Reciever

Соседние файлы в предмете Распределенные системы управления