我在JAVA中使用Akka2.10。我有一个为我获取Actor引用的方法-或者创建一个(如果之前没有)-但有时当我尝试创建一个时,我收到以下异常:akka.actor.InvalidActorNameException:actorname[]isnotunique!atakka.actor.dungeon.ChildrenContainer$NormalChildrenContainer.reserve(ChildrenContainer.scala:130)atakka.actor.dungeon.Children$class.reserveChild(Children.scala:
假设我有一位主管已关联2位Actor。当我的应用程序关闭时,我想优雅地关闭那些Actor。调用supervisor.shutdown()会停止所有actors还是我仍然需要手动停止我的actors?谢谢 最佳答案 Stoppingasupervisor(调用Supervisor.stop())停止所有链接的(受监督的)actor:finalclassSupervisorActor{...overridedefpostStop():Unit=shutdownLinkedActors然而,当你想优雅地关闭系统中的所有参与者时,还有另一个
RedisCluster采用无中心结构,每个节点保存数据和整个集群状态,每个节点都和其他所有节点连接。RedisCluster提供了一种运行Redis安装的方法,在该安装中,数据会在多个Redis节点之间自动分片。RedisCluster在分区期间还提供了一定程度的可用性,这实际上是在某些节点出现故障或无法通信时继续操作的能力。但是,如果发生较大故障(例如,大多数主服务器不可用时),集群将停止运行。RedisCluster自动分割在多个节点之间的数据集,一部分节点出现故障或无法与集群的其余部分通信时,继续运行的能力。创建网卡dockernetworkcreateredis--subnet172
我有以下任务,对此我有Java/Executors解决方案运行良好,但我想在Akka中实现相同的功能并寻找最佳实践建议。问题:从多个URL中并行获取/解析数据,阻塞直到所有数据被获取并返回聚合结果。应该重试错误(IOException等)达到一定次数。到目前为止,我的实现非常简单——创建知道应该获取哪些URL的Fetcheractor,它创建一堆Workeractor并向它们发送URL,每条消息一个。完成特定URLWorker后,将消息连同结果发送回Fetcher。Fetcher保持结果状态,Workers无状态。下面是简化的代码。getter:classFetcherextendsU
我正在尝试运行我已经在各种条件下成功运行了几个月的东西。我在运行Java7的Java应用程序中使用akka-actor_2.112.3.4和scala-library2.11.7。就像我说的,相同的代码已经工作了几个月。在最近的情况下,我得到以下信息:java.lang.ClassCastException:interfaceakka.actor.Schedulerisnotassignablefromclassakka.actor.LightArrayRevolverScheduleratakka.actor.ReflectiveDynamicAccess$$anonfun$getC
我目前正在研究Akka(Java版)中的容错和主管策略。在...http://doc.akka.io/docs/akka/2.3.2/java/fault-tolerance.html和http://doc.akka.io/docs/akka/2.3.2/general/supervision.html#supervision几个问题:1)当我们知道期望什么样的异常时,我们应该在Actor中使用try/catch块吗?为什么或者为什么不?如果不是,我们是否应该依靠监督者策略来有效处理child可能抛出的异常?2)默认情况下,如果在父actor中没有显式配置任何super用户,则看起来任
我是Akka(Javalib)的新手,我想了解Akka是否可用于向JDBC发出非阻塞请求,如果可以,它会是什么样子。我相信大多数JDBC驱动程序打开一个套接字连接并阻塞创建它的线程,直到收到特定的JDBC响应,因此Akka在这里可能无能为力,但我想知道是否有一种方法(可能通过Futures或Agents?)Akka可以帮助提高性能,并允许actor系统继续处理数据,同时正在进行现有的JDBC调用并等待响应。我找到了thisarticle这有点模糊/神秘,但听起来future可能是这里的关键。然而那篇文章并没有真正展示任何有意义的(真实世界的)代码示例,所以我仍然不知所措。假设我们有一个
我最近读到Quasar它为JVM提供“轻量级”/类似Go的“用户模式”线程(它也有一个Erlang启发的Actor系统,比如Akka但这不是主要问题)例如:packagejmodern;importco.paralleluniverse.fibers.Fiber;importco.paralleluniverse.strands.Strand;importco.paralleluniverse.strands.channels.Channel;importco.paralleluniverse.strands.channels.Channels;publicclassMain{publ
我正在使用akkaactor系统进行多线程处理。它在正常用例中运行良好。但是,Akka会在发生fatalerror时关闭JVM。请告诉我如何配置Akka以禁用java中的“akka.jvm-exit-on-fatal-error”。下面是代码。publicclassQueueListenerimplementsMessageListener{privateString_queueName=null;publicstaticbooleanisActorinit=false;publicstaticActorSystemsystem=null;privateActorRefmyActor;
你能给我解释一下之间的区别吗context.actorOf和system.actorOf? 最佳答案 这个问题的答案很容易在Akka文档中找到:AnactorsystemistypicallystartedbycreatingactorsbeneaththeguardianactorusingtheActorSystem.actorOfmethodandthenusingActorContext.actorOffromwithinthecreatedactorstospawntheactortree.使用System.actorOf