Я новичок в Akka и не могу найти ответ в справочном руководстве.
Предположим, у нас есть удаленные акторы, распределенные в кластере из 3 машин (A, B, C), где один актер живет на каждой машине, а у других есть актерRef на 2 других, то есть:
Machine A:
A (real actor)
-> B (ref)
-> C (ref)
Machine B:
-> A (ref)
B (real actor)
-> C (ref)
Machine C:
-> A (ref)
-> B (ref)
C (real actor)
Актер A выполняет следующий код:
bRef ! msg1
bRef ! msg2
Актер B выполняет следующие действия. код вывода в обработчике сообщений:
case msg1 =>
cRef ! msg3
aRef ! msg4
Актер C выполняет следующий код в обработчике сообщений:
case msg3 =>
aRef ! msg5
Могу ли я сделать следующие предположения (если есть):
субъект B получает msg1 до того, как он получит msg2
субъект A получит msg5 прежде, чем он получит msg4
И следующий вопрос, который, вероятно, приведет к пониманию вышесказанного: Сообщение отправлено пользователем! оператор через сеть действительно асинхронно или ждет, пока получатель почтовый ящик его получит? Т.е.блокируется ли строка
bRef ! msg1
, пока субъект B не получит сообщение в свой почтовый ящик, или порождает поток, который обрабатывает доставку и продолжает выполнение
bRef ! msg2
еще до того, как узнает, что субъект B получил сообщение msg1?