草庐IT

java - 获取现有或创建新的 akka actor

我正在尝试使用ActorFor获取现有的ActorRef或创建一个新的(如果它不存在)。我有以下代码,但它似乎没有按预期工作。.isTerminated()始终为真。ActorSystemsystem=ActorSystem.create("System");ActorRefsubscriberCandidate=system.actorFor("akka://System/user/"+name);if(subscriberCandidate.isTerminated()){ActorRefsubscriber=system.actorOf(newProps(newUntypedAc

java - 我可以为某些 Actor 的自动名称添加前缀吗?

我有一些Akka项目,我有以下场景:我有很多Actor,我希望有一个人类可读的名字,但与此同时,我不想为每个Actor生成唯一的名字我一个人。那么,有没有一种方法可以让Prop或Actor系统为自动生成的名称添加特定字符串前缀?例如,我有一些ActorMaster创建了一些Worker类型的child。我希望每个child的名字都以“worker-”开头,这样我就可以轻松地在日志中跟进。另外,如果可能的话,我想知道是否有其他方法可以更细粒度地命名Actor。提前致谢。编辑:这是我想要的示例目前,据我所知,您有两个选择:1)使用自动生成的名字创建actorActorRefmyActor=

java - 尝试在我的 Play2 应用程序中利用 Akka future 和发挥 promise

在阅读play2文档时,我发现了这一点:BecauseofthewayPlay2.0works,actioncodemustbeasfastaspossible(i.e.nonblocking).Sowhatshouldwereturnasresultifwearenotyetabletocomputeit?Theresponseshouldbeapromiseofaresult!哇!这当然让我对playakka产生了兴趣。和akka.我目前正在构建一个与elasticsearch集成的自动完成应用程序,所以这将是一个完美的选择!Controller:publicclassAutoCo

java - Akka Stream 中直播资源流程说明

在akka-streamdocs中有这个注释说明如下:…areusableflowdescriptioncannotbeboundto“live”resources,anyconnectiontoorallocationofsuchresourcesmustbedeferreduntilmaterializationtime.Examplesof“live”resourcesarealreadyexistingTCPconnections,amulticastPublisher,etc.;…我有几个关于笔记的问题:除了这两个例子,还有哪些资源可以算作直播?有什么不能安全(深度)复制的吗

java - 我应该使用 Java 中的哪个线程池?

有大量的任务。每个任务都属于一个组。要求是每组任务应该像在单线程中执行一样串行执行,并且吞吐量应该在多核(或多cpu)环境中最大化。注:还有海量组,与任务数量成正比。天真的解决方案是使用ThreadPoolExecutor和同步(或锁定)。但是,线程会相互阻塞,吞吐量不会最大化。有更好的主意吗?或者有没有第三方库可以满足要求? 最佳答案 一种简单的方法是将所有组任务“串联”为一个super任务,从而使子任务连续运行。但这可能会导致其他组延迟,除非其他组完全完成并在线程池中腾出一些空间,否则这些组不会启动。作为替代方案,请考虑将一组任

java - Akka 集群加入 DNS 负载均衡

查看akkaclusterdocumentation看来您必须知道至少1个“种子节点”的服务器和端口值才能加入集群。示例application.conf明确指出开发人员在编写文件时需要知道“host1”和“host2”:akka.cluster.seed-nodes=["akka.tcp://ClusterSystem@host1:2552","akka.tcp://ClusterSystem@host2:2552"]但是,请考虑使用DNS负载平衡器注册每个集群节点的可能性。例如:可以实例化10个节点,这些节点都在名称“foobar.cluster.com”后面的负载均衡器中注册,这样

java - 如何向相邻jvm中的akka​​系统发送消息?

我在一个JVM中使用HelloActor启动了akka系统,并尝试从另一个JVM中的客户端向它发送消息。没有任何效果。我应该如何正确地做到这一点?这是代码:简单服务器packageakkaSample.severalSystemsimportakka.actor.{Props,Actor,ActorSystem}importcom.typesafe.config.ConfigFactoryclassHelloActorextendsActor{overridedefpreStart():Unit={println("Helloactorstarted")}defreceive={cas

java - 什么时候使用 Akka 微内核?

我正在阅读Akka文档,并对一些真正没有很好解释的东西感到好奇。他们mention一个叫做AkkaMicrokernel的东西,并暗示它是某种应用Bootstrap/启动器,但他们并没有真正解释它是什么以及何时使用它。p>稍后在文档中有一个entirepage致力于微内核,但它同样神秘而模糊,声明:TheAkkaMicrokernelisincludedintheAkkadownloadfoundatdownloads.然后:TorunanapplicationwiththemicrokernelyouneedtocreateaBootableclassthathandlesthest

java - 如何知道 Actor 是否空闲

我有未知数量的工作要由已知(当然)数量的Actor执行。Actor完成工作后,初始工作数量可能会增加。也就是说,一个参与者在完成其任务后,可能会添加一个要执行的新作业。我处理这个问题的方法是让每个actor在完成其工作后向master发送一条消息,不仅包含执行结果,还带有一个“标志”,表明该actor现在处于空闲状态。master有一个作业队列和一个空闲actor队列,每当一个actor发送“作业完成消息”时,master就会检查该actor是否还有其他事情要做......等等,直到作业队列是空的,闲置队列已满...那时我关闭了系统。这里没有太多的监督,所以我觉得我做的不对...我没有

java - Actor 名字不是唯一的 - AKKA

我在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: