Передача сообщений между удаленными MailboxProcessors?

Я использую классы MailboxProcessor, чтобы держать отдельные агенты, которые делают свое дело. Обычно агенты могут общаться друг с другом в одном и том же процессе, но я хочу, чтобы агенты разговаривали друг с другом, когда они находятся на отдельных процессах или даже на разных машинах. Какой механизм лучше всего подходит для реализации связи между ними? Есть ли стандартное решение?

Обратите внимание, что я использую экземпляры Ubuntu для запуска агентов.

Ответ 1

Я думаю, что вы собираетесь писать свои собственные процедуры для сериализации сообщений, передавать их через границы процесса и затем отправлять их с другой стороны. Это также потребует внедрения системы идентификаторов, в которой каждый почтовый ящик имеет идентификатор, а процессы могут отправлять сообщения идентификаторам, а не только Mailbox.Send. Это непросто, так как локальные ящики будут иметь доступ к локальной памяти, но удаленные почтовые ящики не будут.

Я бы посмотрел на что-то вроде RPyC (http://rpyc.wikidot.com/), поскольку он предоставляет протокол, который вам нравится.

В принципе, ответ "нет", на самом деле нет хорошего способа сделать это.