Tag: 演员

在AKKA中,在主管上调用关闭会阻止它监督的所有演员吗?

假设我有一个链接了两个演员的主管。 当我的应用程序关闭时,我想优雅地关闭这些演员。 调用supervisor.shutdown()会停止所有演员还是我还需要手动停止我的演员? 格拉西亚斯

什么是multithreading的最佳替代方案?

目前我们在应用程序(Java)中使用线程。 但是一次会创建大约1000个(或更多)线程。这个线程应该处理数据并将其存储在db中。 这会占用更多内存和I / O. 什么可能是最好的选择呢? 可扩展性,一致性和性能是主要要求。

Akka设计校长

在使用相当大的Akka应用程序时,我在使用普通方法和非Akka类时遇到了一个非常简单的结构,但在使用Akka时实际上很难确定,这就是为什么我来这里问你推荐什么是解决这个问题的最佳方法。 所以问题是这个,我有一个父actor,让我们称他为“Connector”,Connector有行为描述它在收到ConnectCommand实例时应该做什么。 首先,它使用HttpClient提交表单,然后转到几个URL以检查某些会话参数,并最终向Sender(称为“Consumer”)发送包含使用API​​所需的所有内容的连接消息。 现在,我是一个忠实的粉丝,而不是拉/问,所以实现这一点在我看来是一项艰巨的任务。 我们来看看吧。 HttpClientActor返回的所有响应都是一个Response实例,因此首先想到的是在我的actor中定义了多个行为,并且在连接过程的某个步骤完成后,逐步地将行为更改为下一步。 private final PartialFunction inital = ReceiveBuilder .match(ConnectCommand.class, c -> this.startConnection()) .matchAny(this::unhandled) .build(); private final PartialFunction stage1 = ReceiveBuilder .match(Response.class, this::stage1) .matchAny(this::unhandled) .build(); private final PartialFunction stage2 = ReceiveBuilder .match(Response.class, this::stage2) .matchAny(this::unhandled) .build(); private final PartialFunction stage3 = ReceiveBuilder .match(Response.class, this::stage3) .matchAny(this::unhandled) .build(); private final PartialFunction stage4 = ReceiveBuilder .match(Response.class, […]

Akka中Typed和UnTyped Actors有什么区别? 什么时候用?

我试图阅读Akka文档,找出Typed和Untyped actor之间的确切区别。 什么时候用? 我不确定我错过了什么。 有人可以指点我相关的东西或者在这里提供这个问题的答案吗?

如何通过模拟其中的一个或多个方法来测试Akka Actorfunction

我很想知道如何通过在Actor中模拟一些方法 ( 用mocked替换真实对象/ actor的方法实现 )来测试Akka Actorfunction。 我用akka.testkit.TestActorRef ; 另外:我试图使用SpyingProducer但目前尚不清楚如何使用它。 (就像我,如果我在其实现中创建了actor,它将与我现在一样)。 谷歌搜索结果不是很冗长 。 我使用powemockito和java 。 但是这没关系。 我很想知道how to do it in principle 任何语言框架下使用任何语言 (所以如果你不知道power / mockito如何工作只是提供你的代码..(请)或完全了解你将如何使用你知道的工具。) 所以,假设我们有一个要测试的Actor: package example.formock; import akka.actor.UntypedActor; public class ToBeTestedActor extends UntypedActor { @Override public void onReceive(Object message) throws Exception { if (message instanceof String) { getSender().tell( getHelloMessage((String) message), getSelf()); } } […]

Akka是否支持没有对象序列化的进程内消息传递?

希望使用Akka Actors在同一JVM中的Java线程之间传递事件。 其中一些事件包含大对象(10-100Mb)。 我想避免序列化这些对象,同时通过仅传递对象的引用来节省内存空间; Akka支持这个吗? 我知道可以实现一个自定义的Akka序列化程序,这可能是一个解决方案,但除此之外我不太了解该框架。

获得现有或创建新的akka​​演员

我正在尝试使用ActorFor获取现有的ActorRef,或者如果它不存在则创建一个新的ActorRef。 我有以下代码,但它似乎没有按预期工作。 .isTerminated()始终为true。 ActorSystem system = ActorSystem.create(“System”); ActorRef subscriberCandidate = system.actorFor(“akka://System/user/”+name); if (subscriberCandidate.isTerminated()) { ActorRef subscriber = system.actorOf(new Props(new UntypedActorFactory() { public UntypedActor create() { return new Sub(name,link); } }), name); System.out.println(subscriber.path().toString() + ” created”); } else System.out.println(“already exists”); 我在这里想念的是什么? 提前致谢。

我怎样才能检查Akka演员是否存在(akka 2.2)?

我有一个java对象,它不是一个使用actorSelection(Path)从actor系统中选择actor的actor。 系统中可能存在所选的actor。 在Java Api中,ActorSelection不存在ask(),因此我无法向actor选择发送和Identify消息并使用响应的发送者。 我试图通过演员选择向演员发送消息然后对deadletter做出反应来解决问题。 但我没有任何动静。 如果演员活着还是不存在,我如何检查ActorSelection? ActorSystem system = ActorSystem.create(“test”); //create test actor system.actorOf(Props.create(TestActor.class), “testActor”); //add dead letter listener to the system ActorRef eventBusActor = asys.actorOf(Props.create(EventBusActor.class), “eventbusactor”); system.eventStream().subscribe(eventBusActor, DeadLetter.class); //This works. The test actor receives the message ActorSelection a1 = asys.actorSelection(“/user/testActor”); a1.tell(“hello”, ActorRef.noSender()); //This does not work and does not send dead letters ActorSelection […]