【问题标题】:Passing large byte[] between actors in Akka.net cluster在 Akka.net 集群中的参与者之间传递大字节 []
【发布时间】:2018-09-11 17:19:56
【问题描述】:

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

【问题讨论】:

    标签: akka.net akka-remote-actor


    【解决方案1】:

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

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

    查看成为/取消成为的文档 - http://getakka.net/articles/actors/receive-actor-api.html#becomeunbecome

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

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

    【讨论】:

      猜你喜欢
      • 2011-07-26
      • 1970-01-01
      • 2018-12-10
      • 2017-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-27
      相关资源
      最近更新 更多