当前位置: 首页 > 知识库问答 >
问题:

Akka集群分片实体查询

华佐
2023-03-14

我正致力于将一个单节点akka actor系统应用程序改为akka集群。一个变化是将一种有状态的参与者(在运行时可以有很多)变成集群分片托管实体。现在它在多个节点上运行良好。

我面临的一个问题是如何查询(获取全部)在集群中划分区域所创建的实体。以前在单节点模式下,它使用actor system ActorSelection进行actor路径匹配以获得匹配的actor列表,这在集群分片中不再起作用。

我想知道Sharding Region是否有一些查询其实体的内置支持。

共有1个答案

饶元章
2023-03-14

>

  • 您需要所有参与者系统位于同一群集中。为此,请确保它们都配置了相同的种子节点。

    如果要访问另一台计算机中的执行元,则需要在执行元选择中包含其IP地址。

    如果您希望在选择参与者时不需要IP地址,则必须为参与者实现一个命名系统。为此,您可以使用Zookeeper并将每个条目放在临时znode上。

    资料来源:2014年解决了同样的问题

  •  类似资料:
    • 我正在使用Akka(特别是远程和集群包)构建一个开源的分布式经济模拟平台。这类仿真中的一个关键瓶颈是参与者之间的通信模式在仿真过程中不断演变,并且参与者最终通常会通过集群中节点之间的线路发送消息负载。 我正在寻找一种机制来检测某些节点上的参与者,这些参与者正在与其他节点上的参与者进行大量通信,并将它们移动到其他节点。是否可以使用现有的Akka集群分片功能?也许这就是罗兰·库恩所说的“自动演员树划分

    • 我试图学习Akka集群下面的教程提供了这里 我已经创建了应用程序和回购是在这里。 正如教程中提到的,我已经启动了FrontEndApp 即使我在2551和2552上启动后端应用程序,上述警告消息也会不断重复。 在2551上启动后端参与者的终端日志。 最后一个日志持续重复。 在2552上启动后端参与者的终端日志。 不确定是什么原因群集节点不能检测到彼此和参与者节点与后端。 我会错过任何设置吗?

    • 调整集群的分片分配 在ElasticSearch Server一书中,我们探讨了如何强制改变分片的分配方式,如何取消、如何使用一条API命令在集群中转移分片。然而在谈论到分片分配时,ElasticSearch允许我们做的不止如此,我们还可以定义以系列用于分片分配的规则。例如,假定一个4-节点的集群,图示如下: 正如你所看到的一样,集群由4个节点构成。每个节点都绑定了一个特定的IP地址,同时每个节点

    • 我有一个带有类型化参与者的集群分片应用程序。演员看起来像这样: 演员是通过这样的碎片信封创造的: 两个for循环向同一参与者发送消息。第一个循环发送整数,第二个循环发送字符串。当参与者处理消息时,它会Hibernate,以便在队列中建立消息并测试优先级。优先级邮箱在系统配置中配置,UnboundDPriorityMailbox实现如下: 为什么Actor按照消息到达的顺序打印消息,而不考虑优先级生