这可能是duplicate。
因此,我取得了一些进展。但是,我发现将reference documentation from the C# API解释为所需的Akka.FSharp API很有挑战性。
是否有使用" Akkling.Cluster.Sharding"?
在演员之间发送消息的示例截至目前,我只能从我的客户端程序而不是演员发送消息。
true
上面的代码有效。但是,它仅适用于字符串作为消息。我仍在努力让演员用各种类型的消息向对方发送消息。
注意:
我得到了Akka.Persistence.SqlServer插件。
但是,我不清楚如何在Akkling.Cluster.Sharding中改进following setup:
validation
具体来说,我的印象是在分片集群系统中需要分片区域才能在演员之间来回发送消息。
作为对这种范式不熟悉的人,我正在努力创造一个简单的'#hello world"使用分片功能在两个演员之间键入消息传递程序。
有什么建议吗?
答案 0 :(得分:1)
如果希望分片节点是分片actor的有效主机/容器,则它必须运行与该类型的actor关联的分片区域。发送到分片actor的所有消息都通过shardRegion引用发送。
在第一个示例代码段中,您已经证明,字符串消息是唯一有效的消息类型,可能是因为您的consumer
行为将字符串作为唯一有效的消息类型。
正如您在spawnSharded
definition中看到的那样,它需要4个参数。这里重要的是第一个,它是一个函数,用于解析分片插件所需的所有信息,以便将消息路由到有效的actor /实体。此方法返回一个元组,其中:
由于在该示例中,此消息解析器函数为id
(标识),因此我们将元组直接发送到分片区域。您可以将该功能更改为您想要指定自定义内容的任何其他内容。
PS:如果您有更多问题,可以找到Akka.NET gitter channel。