gpt4 book ai didi

java - Akka 2.1.0-RC 集群路由器因找不到路由问题而终止

转载 作者:行者123 更新时间:2023-12-01 05:02:32 24 4
gpt4 key购买 nike

我正在编写 java/scala akka 概念证明,目前我正在集群环境中摸索 actor 概念。

规范

我有一个特定的情况,系统将相同的消息发送到多个节点。我的工作是不丢弃任何这些消息,只将 1 条消息传递到后端系统。就像具有负载平衡/故障转移功能的独特过滤器。

想法

我正在考虑在 2 个节点上使用 2 个“前端”actor,系统会将消息发送到前端路由器(假设是循环),该路由器发送到发送到后端的前端 actor。

另一个后备解决方案是使用仅领导者发送到后端系统,在该系统中,他们都收到相同的消息,并且只有领导者将其转发。

问题

我面临的问题(参见代码)是我希望路由器使用现有的前端参与者作为集群上的路由。这在示例代码中失败,因为路由器仅在本地通过 routees-path (配置设置)查找路由,找不到任何路由并终止。

我也没有成功使用路由器在集群节点上部署路由的配置。它总是会在本地部署它们。

我这里有示例代码http://ge.tt/2UHUqoQ/v/0?c 。有2个入口点* TransformationSample.App2 - 使用命令行参数 2551 和 2552 运行两个实例(种子节点)* TransformationSample.App1 - 运行一个没有命令行参数的实例

App1 尝试创建路由器并与其通信,但路由器终止,因为它无法在本地找到前端路由器。我将问题固定在 akka.cluster.routing.ClusterRouteeProvider 类 createRoutees 方法第 178 行 https://github.com/akka/akka/blob/releasing-2.1.0-RC1/akka-cluster/src/main/scala/akka/cluster/routing/ClusterRouterConfig.scala 上.

结束时

我可能在这里做错了什么,请原谅我的 scala(这是我编写的第一个项目)。

我希望这个路由器能够工作的原因是因为概念验证的下一步是使用类似的设置对后端系统进行负载平衡,其中前端参与者将与(单独的)后端集群进行通信将工作循环发送到后端参与者的路由器。

这是否过度设计?我们必须对前端部分进行故障转移,并在后端部分进行负载平衡。

最佳答案

首先,您使用什么样的 Actor ? Scala 和 Akka 的 actor 彼此不同。如果您使用 akka actor,请尝试使用 Remote Actor System,这非常好,特别是如果您安装了 DB。

关于java - Akka 2.1.0-RC 集群路由器因找不到路由问题而终止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13206202/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com