问题标签 [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.

0 投票
2 回答
2397 浏览

akka - NAT 后面的 akka 集群节点(使用 docker)

是否可以在 NAT 后面运行 akka 节点(每个节点都在单独的 nat 后面,公共端口是 DNAT 的私有端口)?目前我正在尝试在 docker 容器中部署 akka 节点。Docker 将公共端口 Natting 到实例私有端口,问题是 akka 节点的地址是从 akka.remote.netty.tcp.hostname 创建的,但在 natted 环境中它与面向公共的主机名不同。来自公共接口的消息被拒绝,因为 akka 绑定到私有 IP。是否可以更改不尊重 akka.remote.netty.tcp.hostname 的 akka 节点地址,假设当前节点地址是 akka.tcp://ClusterSystem@172.16.10.5:2551,其中 172.16.10.5 是 akka.remote.netty .tcp.hostname,但我想将其更改为 akka.tcp://ClusterSystem@10.2.0.222:2551,其中 10.2.0.222 是公共可访问地址,但 akka 仍应监听 172。

0 投票
2 回答
4171 浏览

akka - Akka 中聚类和远程处理的区别

我在单个 JVM 上使用 Akka 开发了我的应用程序。现在我想将工作负载分配到多台机器上。我已经开始阅读文档并感到困惑。

有两种方法可以通过集群和远程处理来分发 Akka 应用程序。我不明白两者之间的区别。如果我理解正确,那么两者都相互排斥,因为在配置中需要使用不同的提供者作为参与者参考:

那么有哪些用例呢?我什么时候会选择一个而不是另一个?

也许集群类似于远程处理的超集,或者它可能是相反的方式?

0 投票
2 回答
5363 浏览

akka - Akka 应用程序中的 JMX 监控/统计

除了 Cluster MBean 之外,是否有任何内置的 JMX 公开监视/统计可以在 Akka (Java) 中启用?我看过 Typesafe Console,但由于它需要许可证才能用于从多个节点收集数据,所以我希望能够使用普通的 JMX 实现相同的目标。我已经检查了 Akka 文档,但在这个主题上没有任何运气。

0 投票
2 回答
947 浏览

akka - 测试参与者发送者是本地还是远程

我需要确定消息的发送者是 Akka 集群中的本地参与者还是远程参与者之一。目前我发现这样做的唯一方法是

有什么更好的方法?

我正在使用 Akka 2.3

更新: 解释我为什么要这样做,以防有办法完全避免这个问题。

在每个节点上,路由器管理许多参与者来完成工作。工作角色将结果发送回本地主角色,并通过发送者引用分配新作业。Master Actor 还定期向其他节点的 Master Actor 发送结果,确保数据在不同节点的 Master 之间随机“混合”。在数据来自远程参与者的情况下,接收主机不应该尝试分配新工作。它本质上是一个带有混合的岛方法的实现。

0 投票
1 回答
88 浏览

akka - akka中有一个简单的哈希路由器吗?

我在我的演员系统中使用一致性哈希。我面临的问题是密钥没有均匀分布(不过,这是我所期望的)。我只是想知道akka中是否有一个我可以使用的简单哈希路由器。

或者我应该实现一个自定义路由器?

谢谢!!!

0 投票
1 回答
175 浏览

scala - 不同节点/路由器上的相同路由行为

我知道,如果我使用一致的散列组路由器,它将始终路由到相同的注册路由。

所以我编写了我的应用程序,其中有一些自己的路由routee-nodes和一个public-node客户端可以访问的路由器。

如果客户端发送一条消息,它将按应有的方式路由,并且工作正常。
现在我想做的是,public-nodes用他们自己的路由器添加更多,提供与其他路由器相同的发送/路由行为public-node

我的意思是,客户端是否XYZpublic-node A,BC. 它应该总是一样的routee-node

起初我认为akka可能默认提供这种行为,因为:

  1. 我使用的是agroup而不是pool路由器,所以每个人都知道相同的routees
  2. 我了解到可以订购集群节点

所以我假设路由列表是有序的,不同的路由器将相同的键映射到相同的路由。但测试表明我错了。

那么,akka 有没有办法实现这种行为呢?谢谢。

0 投票
1 回答
919 浏览

scala - Akka 远程控制器/工作人员断开连接并被隔离

遥控器系统:

代码:

getnodes() 是List<Address>

应用程序.conf:

远程工作者系统:代码:

远程配置文件

错误:[WARN] [02/11/2014 14:50:26.728] [remote-akka.actor.default-dispatcher-17] [akka://..../system/remote-watcher] 检测到无法访问:[ akka.tcp://remote@192.178.1.100:2553] [INFO] [02/11/2014 14:50:26.728] [remote-akka.actor.default-dispatcher-15] [Remoting] 地址 [akka.tcp ://remote@192.178.1.100:2553] 现在已被隔离,所有发往该地址的邮件都将被发送到死信。

0 投票
1 回答
576 浏览

akka - 在 AKKA 中配置集群

我想创建一个 AKKA 集群,我的应用程序在 4 台服务器之间进行负载平衡,每台服务器都有相同的代码副本并独立运行。

使用 AKKA,集群与它的种子节点一起在 application.conf 中定义。但是,由于我的应用程序的性质,我将有四个版本的 application.conf 文件,每个版本都有一组种子节点,这将产生 4 个集群,每个应用程序节点上都有一个。我想以我有一个集群的情况结束,我如何使用 Akka 集群来配置它?

部署在每个节点上的代码看起来像这样,都具有相同的主机名。

0 投票
1 回答
242 浏览

playframework-2.0 - 在 Play2 开发模式下关闭 Akka 系统

我正在使用 Akka 和 Play2 开发我的应用程序。

当我第一次运行 play2 应用程序~run并进行 GET 操作时,我的自定义 Actor 系统会在 Controller 中创建,它会在 2558 端口上启动一个集群。

如果更改我的代码中的任何内容并使另一个 GET 播放重新编译并按预期重新开始,但 2558 端口被占用并且我有错误:Failed to bind to /127.0.0.1:2558

我不知道如何处理我自己的演员系统关闭以与 play2 一起工作。我试图GlobalSettings在方法中的对象中做到这一点,onStop但没有运气。

0 投票
1 回答
2760 浏览

spring - Akka 演员和集群 - 我在使用 ClusterSingletonManager 时遇到问题 - 状态开始时未处理的事件

我有一个使用 Akka 2.2.4 的系统,它创建了一堆本地演员并将它们设置为广播路由器的路由。每个工人处理总工作的一部分,根据我们传递的一些哈希范围。它工作得很好。

现在,我必须对这个应用程序进行集群以进行故障转移。基于每个哈希范围只有一个工作人员存在/在集群上被触发的要求,在我看来,将每个工作人员设置为 ClusterSingletonManager 是有意义的..但是我无法让它工作。Actor 系统启动,它创建 ClusterSingletonManager,它将下面引用的代码中的路径添加到广播路由器,但由于某种原因它从未实例化我的实际工作 Actor 来处理我的消息。我得到的只是一条日志消息:“未处理的事件 ${my message} 在状态开始”。我究竟做错了什么?我还需要做些什么来启动这个单实例集群吗?我是否向错误的演员发送消息?

这是我的 akka 配置(我使用默认配置作为后备):

这是我创建我的 Actors 的地方(它是用 Groovy 编写的):

当我尝试向实际的工作人员发送消息时,上面的路径应该解决吗?目前它没有。我究竟做错了什么?此外,这些参与者存在于 Spring 应用程序中,并且工作参与者设置了一些 @Autowired 依赖项。虽然这个 Spring 集成在非集群环境中运行良好,但在集群环境中是否存在我应该注意的问题?

谢谢你

仅供参考:我也在 akka-user google 组中发布了这个。这是链接