В чем разница между методами отправки и публикации EventBus в Vertx?

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

1 ответ

Решение

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

Используя publish:

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

Используя send:

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

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

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

Другие вопросы по тегам