В чем разница между методами отправки и публикации в EventBus Vertx? - PullRequest
0 голосов
/ 22 июня 2019

У меня первый контакт с EventBus от Vertx, и я понял, что есть два способа отправить сообщение. Использовал метод отправки или публикации. Я спрашиваю: какова практическая разница между использованием этих двух методов и в каком сценарии они используют каждый из них?

1 Ответ

5 голосов
/ 22 июня 2019

И send, и publish используются для отправки сообщения на адрес шины событий. Однако между ними есть некоторые различия.

Используя publish:

  • Сообщение отправлено одному или нескольким слушателям
  • Все обработчики, прослушивающие адрес, будут уведомлены
  • От обработчиков ответа не ожидается

Используя send:

  • Сообщение отправляется одному и только одному обработчику, зарегистрированному по адресу шины событий.
  • Если зарегистрировано несколько обработчиков, будет уведомлен только один. Приемник будет выбран "алгоритмом циклического перебора" согласно документам.
  • Получатель может ответить на сообщение, этот ответ может быть пустым или содержать тело ответа. Также можно указать время ожидания ответа.

При практическом использовании, publish весьма полезно для информирования о том, что событие произошло, тогда как send очень удобно для запроса обработки, когда ответ имеет значение.

Концептуально publish использует шаблон публикации / подписки, тогда как send использует шаблон запроса / ответа.

...