问题标签 [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 投票
1 回答
683 浏览

akka - Akka 集群:节点身份危机

我有一个由 15 个节点/盒子组成的集群。我大致同时启动节点。其中一个节点行为异常,并且不断记录“忽略收到的针对其他人的八卦”。但是,在从集群中删除之前,该节点似乎确实工作了一段时间。基本上这个节点似乎认为它是另一个人,同时也表现得像它自己。所有 15 个节点上的代码和配置完全相同,所以我不明白为什么我只在一个节点上遇到这个问题。也许这是一个硬件问题?

一些日志记录:

配置:

0 投票
2 回答
243 浏览

java - ClusterSingletonManager 没有故障转移

我一直在测试具有以下设置的 Master / Worker 集群:

  • 2个虚拟服务器,每个服务器有一个Master和一个Worker(独立的jvm)
  • Master 使用 ClusterSingletonManager 实例化
  • Masters也是种子节点。

我正在通过手动关闭“活动”主节点来测试主节点的故障转移。在工人不处理任务的情况下,故障转移工作正常。“非活动”主节点确实检测到另一个节点无法访问,并最终将启动它的主角色。

但是如果工作人员很忙,那么故障转移就不会完全起作用。如以下消息所示,“非活动”主节点确实将另一个节点检测为不可访问并隔离,但该节点从不启动主角色。

2014-07-23 23:52:31,777 INFO [JobRunner-akka.actor.default-dispatcher-17] 隔离地址 [akka.tcp://JobRunner@12.3.201.135:40000] 仍然无法访问或尚未重新启动。保持隔离。

任何人都知道为什么会发生这种情况以及是否有解决方案?

谢谢。问候。

0 投票
2 回答
2737 浏览

java - Akka Cluster、Cluster Sharding 和 Cluster 单例用例

我正在编写一个 Akka 应用程序,我想使用 Typsafe 提供的 Akka Cluster 功能。我试图了解 Akka Cluster、Akka Cluster Singleton 和 Akka Cluster Sharding 之间的主要区别。对我来说,他们似乎提供了类似的东西。

在我的场景中,我想要一个集群,它将具有:

  • 可以存在于任何机器中的无状态actors(我将拥有一个池)
  • 我希望他们生活在特定机器中的无国籍演员
  • 可以存在于任何机器中的有状态参与者,但我只需要它们在整个集群中的一个实例,并且能够在参与者死亡时以之前的状态重新启动参与者。

根据我所阅读的内容,我需要 Akka Cluster 作为第一种,Akka Cluster Singleton 用于第二种,Akka Cluster Sharding 用于第三种。我的假设正确吗?如果您知道的话,我正在寻找一些指导以及任何在线示例。

0 投票
2 回答
378 浏览

akka - 如何在 Akka Cluster Singleton Pattern 中订阅成为 LEADER 的事件

作为 Akka Singleton 集群的实例成员,如何在 Akka Cluster Singleton Pattern 中订阅成为 LEADER 的事件。

application.conf 如下:

0 投票
1 回答
2572 浏览

serialization - Akka Cluster 自定义序列化器:

我正在使用 Akka Cluster 来实现一些冗余并消除我的 java 应用程序中的单点故障。但是,在将消息从一台机器发送到另一台机器时,我在消息的序列化方面遇到了一些问题。

我正在发送一个实现的 java 对象Serializable。因此,我需要使用自己的序列化程序,幸运的是,该对象提供了使用 Kryo 的序列化方法。因此,按照本指南,我创建了自己的 akka 序列化程序扩展JSerializer

代码非常简单,我不认为这是问题所在。然后我将序列化程序和序列化程序绑定添加到我的配置中:

当我运行单个节点时,我没有任何问题(显然是因为我没有序列化任何东西......)。但是在集群模式下,我不断收到这些异常:

对我来说,这意味着它无法弄清楚要使用什么序列化程序,它实际上使用的是通用 Java 序列化程序。另外,我不知道它是否相关,但我用 ConsistentHashableEnvelope 包装我的消息,因为我将它发送到集群感知的一致哈希组。

有什么帮助可以使这件事起作用吗?我错过了什么吗?

0 投票
1 回答
420 浏览

akka - Akka 集群类型

我试图了解集群在 Akka 中是如何工作的。具体来说,我对两种不同类型的聚类感兴趣:

  • 异构节点,集群中的每个“节点”(JVM)都包含不同Actor的混合;和
  • 同质节点,其中每个节点包含所有相同类型的 Actor

在此处输入图像描述

以上是我所说的异质同质节点的例子。在第一个(顶部)图表中,anall-actors.jar部署到三台机器:myapp01myapp02AWS 机器。在第二张(底部)图中,部署了 3 种不同类型的 Actor 系统;每台机器1个。异构模型具有简单的优点,并使 Actor System 作为一个整体可扩展。同质模型允许更细粒度的弹性(也许我们需要比“A”或“C”多 3 倍的“B”Actor,等等)。

  1. Akka 是否支持两种类型的聚类(异构和同质)?如果不是,需要什么(在现有集群之上添加)来获得这些集群策略?如果是这样,每种类型是如何配置的?
  2. 是否可以控制每个节点中所需的 Actor 数量?是否可以说“myapp01想要 500 个 A 型演员、200 个 B 型演员和 1,000 个 C 型演员”?还是 Akka 只是响应消息传递需求并自动扩展/缩减各种 Actor?
0 投票
1 回答
1026 浏览

scala - 如何检查集群分片是否正确启动?

我想检查 ClusterSharding 是否不是针对一个区域启动的。这是代码:

如果找不到 shardRegion,则方法akka.contrib.pattern.ClusterSharding#shardRegion抛出。IllegalArgumentException我不喜欢IllegalArgumentException仅仅检查 ClusterSharding 没有启动的方法。

是否有另一种方法,例如 ClusterSharding(system).isStarted(shardRegionName = "someActorName")?或者假设我应该在 ActorSystem 启动时启动所有 shardingRegion ?

0 投票
1 回答
682 浏览

scala - 如何启动akka集群分片?

要启动 akka 集群分片,我应该ClusterSharding(system).start使用一些参数调用。我应该手动为所有节点启动集群分片吗?ClusterSharding(system).start我的意思是在启动时从一个节点调用就足够了,还是所有节点都应该调用它?

0 投票
1 回答
70 浏览

java - 向 Akka 集群中使用最少的机器发送消息

我和 Akka 的新手想要实现这一目标,

  1. 希望在 Amazon EC2 Spot 实例上在固定机器上部署少量有状态参与者(将始终开启)和无状态参与者(处理参与者/工作人员)

现在来处理决定使用 Akka 持久性的有状态参与者的故障转移。

并将工作分配给决定将 RoundRobinPool 与远程部署的路由一起使用的无国籍工人。并希望将消息传递给利用率最低的机器(CPU 和内存)。使用 Pool 以便我可以使用 withSupervisorStrategy() 来处理 Actor 故障。

我正在查看远程部署路由的示例并参考此代码http://www.typesafe.com/activator/template/akka-sample-cluster-java。和https://github.com/akka/akka/blob/cb05725c1ec8a09e9bfd57dd093911dd41c7b288/akka-samples/akka-sample-cluster-java/src/main/java/sample/cluster/stats/StatsSampleOneMasterMain.java

在 StatsSampleClient 中,它随机获取节点并传递消息。我想通过上面提到的最少使用的机加工。我想知道 Akka 是否支持这一点,否则我将编写代码来找出利用率并相应地向该机器发送消息。

请建议是否可以将任何更好的方法用于我上面提到的内容。

谢谢!

-德文德拉

0 投票
0 回答
1338 浏览

java - ClusterActorRefProvider 的奇怪类未找到异常

我的小 akka 集群项目有一个奇怪的行为:我有一个非常简单的 application.conf:

还有一个非常简单的主程序:

Akka、Akka-Remote 和 Akka-Cluster 都通过 maven 包含并且在类路径中可见。现在,当我执行此操作时,它只是失败并出现 ClassNotFoundException: akka.cluster.ClusterActorRefProvider 尽管 akka.cluster.* 包肯定在我的类路径中。

奇怪的是,在另一台机器上,这段代码可以正常工作。所以我想这与我的 eclipse 或运行时配置有关......但遗憾的是我不知道从哪里开始搜索错误。有任何想法吗?如有必要,我将提供更多信息。