问题标签 [akka-cluster]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
scala - akka 集群种子节点给出错误:为非本地收件人丢弃消息
我正在尝试根据以下文档在 Win 7 机器上创建一个基本的 akka 集群:http:
//doc.akka.io/docs/akka/snapshot/scala/cluster-usage.html
当我运行种子节点时出现错误(下面有更多关于它们的信息)
AdriansClusterSystem-akka.actor.default-dispa tcher-16] [akka://AdriansClusterSystem/system/endpointManager/reliableEndpointWr iter-akka.tcp%3A%2F%2FAdriansClusterSystem%40127.0.0.1%3A2552-3/endpointWriter] 丢弃消息 [非本地收件人 [Acka.tcp://ClusterSystem@127.0.0.1:2552/]] 的类 akka.actor.SelectChildName] 到达 [akka.tcp://ClusterSystem@127.0.0.1:2552]入站地址是 [akka.tcp://AdriansClusterSystem@127.0 .0.1:2552]
问题: 为什么我会收到此错误?我错过了akka文档中的某些内容吗?
我的 .conf 文件:
我添加了这个额外的行 *到上面 URL 中列出的文件 *
enabled-transports = ["akka.remote.netty.tcp"]
我启动了 2 个节点,每个节点都在不同的 sbt 窗口中
这两个启动都很好,然后反复显示一条ERROR
消息:
如果我现在这样做
它应该选择一个随机端口并在其上运行一个种子节点,它开始时就像其他 2 个种子节点一样好,然后显示一个类未找到异常,INFO
并且没有当前成员
是的,它只是挂在那里,我必须关闭 sbt 窗口才能终止它。
java - 用于字符串处理的 Akka scatter-gather
我需要通过在输入字符串上应用一组正则表达式来将输入字符串拆分为输出字符串(按某种顺序)。我想用 akka 演员集群实现这个功能,我分散正则表达式和输入字符串并收集字符串。但是我想知道在收集回处理过的字符串时,如何跟踪订单。我不确定“Scatter-Gather”是否是正确的方法,如果还有其他适合的方法,请提出建议。
java - akka 中每个主机的最大演员数
我们在 akka 的一个盒子上最多可以有多少个演员?
scala - 从actors中查找actors的最佳实践
我正在使用akka 2.2.x。在集群模式下。我的问题与演员查找有关。
我有两种演员:
processor
. 它接受文本并以某种方式处理它result collector
. 接受来自的消息processor
并总结结果。
Processor
演员需要向result collector
. 所以,我需要有ActorRef
inside processor
。
问题是 - 如何将其传递/查找ActorRef
到processor
.
我现在有 3 种不同的解决方案:
ActorRef
在processor
创建时查找并ActorRef
作为构造函数参数传递。看起来可能是错误的,因为它不处理参与者重启过程并且不适合集群环境。用.
preStart
_context.actorSelection("../result-collector")
在此之后,我有对象ActorSelection
并且可以发送消息!
。在此解决方案中,我知道由于每次调用前在集群中查找而导致性能下降。还是我在这里错了?查找
preStart
并调用获取.context.actorSelection("../result-collector")
_ 看起来不错,但可能无法处理 akka 集群更改。resolveOne
ActorRef
谢谢!
scala - Akka Pattern - Actor 树,回复原文
这是一个设计问题;
假设我有一棵执行大量处理的演员树。处理由客户端/连接参与者启动(即树是服务器)。最终,客户端参与者想要一个响应。即我有一个看起来像这样的演员系统。
客户端系统想要的响应是叶参与者(即ActorC
和/或ActorD
)的输出。树中的这些参与者可能正在与外部系统交互。这棵树可能是一组预定义的可能路由的actor(即Client_actor
只有一个actorref 指向actor 树的根ActorA
)。
问题是管理将响应(msgX
&/or msgY
)从最终/叶参与者发送回客户端参与者的最佳模式是什么?
我可以想到以下选项;
- 为每个连接客户端创建一个树,并让参与者跟踪发送者,当他们获得一个
msgX
or时msgY
,将其发送回原始发送者 ref,以便消息通过树向上传递。即每个参与者将保留原始发件人的参考。 - 以某种方式发送消息
Client_Actor
中的 refreqData
并将其复制到树中使用的所有消息,以便叶参与者可以直接回复Client_actor
... 这似乎是性能最高的选项。不知道如何做到这一点(我正在以某种方式在包含客户端actor ref 的消息案例类上考虑一个特征)...... - 不知何故,基于通过树传递的消息中的唯一 id 查找客户端参与者或使用参与者选择(不确定这将如何与远程处理一起工作)......
- 更好的东西...
仅供参考,我正在使用 Akka 2.2.1。
干杯!
scala - scala-如何订阅akka leader up事件
我正在使用 akka 玩。我希望某事只在新领导人上任时做一次
我要找到类似的东西,换句话说,我正在寻找类似的东西。
我搜索了集群文档,但仍然不知道该怎么做
akka - Akka 集群感知路由器无法找到路由
一个小例子贴在这里: http: //lpaste.net/94385
我希望能够启动一个主 Dispatcher 机器作为我的集群的种子节点。Dispatcher 有一个针对集群工作人员的集群感知路由器。然后我希望能够根据需要启动工作机器,并让调度路由器自动知道它们的存在,以便它可以开始向它们发送工作。
问题是,如果我首先启动 Dispatcher 机器(因为它是种子节点),集群感知路由器就会启动并且找不到它的任何路由(很公平,它们还没有启动)。文档提到了这一点:
当我启动一台新的工作机器时,我可以看到它已加入集群,但发送到我的路由器的任何消息都会转发到死信。我对文档中的建议并不完全清楚,因为启动新工作人员应该更改集群成员,但是无论我创建多少新工作人员,路由器仍然不会意识到它们。
如果我先启动一个工作节点,然后是调度程序,那么工作人员会很好地接收消息。
总结一下:我想要一个可以在集群中的第一个种子节点上启动的集群感知路由器。任何包含路由器路由的新节点在加入集群时都应该对路由器可用。
scala - 根据集群负载调整消息频率
我正在使用 Akka 2.2.3 和 Scala 编写一个简单的同构集群应用程序;一种粒子过滤算法,其中每个节点在随机时间点与其他集群成员共享数据。它目前是一个研究应用程序,而不是一个业务关键系统。
目前,每个节点每秒都会向随机选择的节点发送固定大小的消息。这可行,但我担心扩展时的性能(例如云与本地)
- 节点可能会过载发送数据
- 节点可能会因来自其他集群成员的传入消息而过载
- 网络可能成为瓶颈
我想在不同的网络上运行具有大小集群的应用程序,并在无需手动调整/监控的情况下获得良好的性能。 我可以采取哪些简单的方法来调整消息大小和频率以减轻上述问题?
akka - ClusterReceptionistExtension 未注册订阅者
我正在尝试在我们的应用程序中使用 akka pub-sub。我有一个游戏应用程序,它是 akka 集群的一部分。我想使用 akka cluster-client 使该应用程序侦听/订阅主题,并且消息将从其他应用程序发布。
集群/订阅者端代码 [在 Play 应用程序中]
我在 Global 中像这样实例化
并且conf文件具有以下内容
何时启动播放应用程序我可以看到以下日志
想知道为什么演员没有正确订阅?我期待它打印订阅消息