Когда вы отправляете сообщение другому (удаленному) компоненту и не ожидаете / не блокируете их обработку сообщения или ответа, ваш «основной поток» продолжается.
Это позволяет отправлять больше сообщений или делать другие вещи.
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?
может привести к последовательной обработке (например, удаленный вызов процедуры).
Асинхронная передача сообщений аналогична отправке электронных писем. Вы можете отправить несколько из них, не дожидаясь, пока получатели обработают / ответят на них.