在 Akka.net 集群中的参与者之间传递大字节 []

Passing large byte[] between actors in Akka.net cluster

我是 Akka.net 的新手。我有 2 个演员,一个要求一个字节数组,另一个从数据库中获取它并将其告诉发件人。如果第二个参与者在远程,它不会将冗长的数组传递给发送者。 如果我想将字节数组作为块发送,我可以在第二个演员的循环中告诉发送者,但我不知道如何让第一个演员收听所有块消息并将它们聚合到一个字节数组. 请帮我解决这个问题。

一种解决方法是让来自第二个参与者的第一条消息类似于 PrepareForIncomingData 消息,当第一个参与者收到时转换为 WaitForDataToComplete 状态,它只接收特定的消息类型,例如IncomingDataChunk 和 IncomingDataCompleted。

虽然在此状态下隐藏任何其他消息,但一旦您收到 IncomingDataCompleted 消息,您就会转换回常规状态并取消隐藏任何隐藏的消息。

请参阅 become/unbecome 的文档 - http://getakka.net/articles/actors/receive-actor-api.html#becomeunbecome

或者另一种选择可能是有限状态机 - http://getakka.net/articles/actors/finite-state-machine.html

或者可能数据被写入共享位置并且消息仅包含第一个参与者可以从中读取数据的路径。