Роль передачи сообщений в реактивных системах - PullRequest
0 голосов
/ 24 июня 2018

Ниже приводится выдержка из здесь :

Основой для реактивной системы является передача сообщений, которая создает временную границу между компонентами, что позволяет их разъединять ввремя - это учитывает параллелизм - и пространство - которое обеспечивает распределение и мобильность.

Что именно этот кусок означает с точки зрения программирования?

Как разделение во времени позволяет параллелизм?

1 Ответ

0 голосов
/ 02 сентября 2018

Когда вы отправляете сообщение другому (удаленному) компоненту и не ожидаете / не блокируете их обработку сообщения или ответа, ваш «основной поток» продолжается. Это позволяет отправлять больше сообщений или делать другие вещи.

myMessageChannelToSystemA.send(new StringMessage("Turn on the light"));
myMessageChannelToSystemB.send(new StringMessage("Open the windows"));
myMessageChannelToSystemC.send(new StringMessage("Close the door"));

В этом случае я сказал трем компонентам что-то сделать. И поскольку я не жду, когда они это сделают, они могут выполнять задачи параллельно.

В отличие от

systemA.turnOnLight(); // blocking?
systemB.openWindows(); // blocking?
systemC.closeDoor(); // blocking?

может привести к последовательной обработке (например, удаленный вызов процедуры).

Асинхронная передача сообщений аналогична отправке электронных писем. Вы можете отправить несколько из них, не дожидаясь, пока получатели обработают / ответят на них.

...