我有一群演员互相传递很多信息。这些参与者的默认队列很可能会导致很多参与者内存不足。
理想情况下,这是我想要发生的事情:
注意:我不想对死信进行负载平衡,有些文章建议使用死信队列进行负载平衡。
你所寻找的行为被称为“背压”。在使用akka streams支持的akka中,请参见下面的演示https://www.lightbend.com/blog/redernment-akka-streams-back-pression-and-asynchronous-architectures
我读过以下文档https://doc.akka.io/docs/akka/current/general/message-delivery-reliability.html#deal-letters,其中写道: 参与者可以订阅事件流上的类Akka.actor.deadletter,请参见event stream以了解如何做到这一点。 但是在Akka Typed中,中没有名为的方法。
我对Akka很陌生,我在尝试与我的演员进行集成测试时遇到了一些问题。 我是这样测试的: 当我这样做的时候: 一切看起来都还好。
[04/27/2014 18:09:05.518][ReadScheduler-Akka.actor.Default-Dispatcher-3][Akka://ReadScheduler/User/Collector]从参与者[Akka://ReadScheduler/User/Executor#2127791644]到参与者[Akka://ReadScheduler/User/Collector
我有两个演员,父母和孩子。家长使用内容监视孩子。看(孩子)。如果孩子调用上下文。停止(自我)父级收到终止消息。但是,如果子级抛出异常,akka将重新启动该异常,但不会向父级发送终止消息。 家长参与者如何监视孩子并监视任何终止/重新启动? 我提出的一个选项是覆盖父级中的主管策略,以便在出现任何异常时停止: 据我所知,这将适用于这位演员的所有孩子。理想情况下,我希望对个别孩子(演员类型)有一个不同的监
在官方的akka 2.0.4文档中,它说: actor重新启动只替换实际的actor对象;邮箱的内容不受重新启动的影响,因此在postRestart钩子返回后,将继续处理邮件。不会再收到触发异常的消息。在重新启动时发送给参与者的任何消息都将像往常一样排队到其邮箱。 我唯一能想到的是,如果消息由于某种原因出现畸形,它将永远不会离开系统,并导致演员定期重新启动...
我只想使用Akka演员作为邮箱,即我想创建n个线程,每个线程创建1个远程演员。 每个线程都获得对其他线程的所有远程参与者的引用,这样它们就可以通过各自的参与者向彼此发送消息。 参与者定义如下: 其中是对该线程的本地参与者的引用。 我有时会遇到上述模式的死锁(超时5秒),即使使用非常简单的方法和很小的消息也是如此。我将问题缩小到actors在收到消息后,但在输入doReceive(...)的第一个大