akka中的AbstractActor,UntypedActor和AbstractBehavior有什么区别?

时间:2019-12-20 11:33:44

标签: java akka

这里是Akka的新手,我有三个不同的示例,并且三个都使用非常不同的类来实现actor,

AbstractActor:https://www.baeldung.com/akka-with-spring

UntypedActor:https://www.baeldung.com/akka-actors-java

AbstractBehavior:https://doc.akka.io/docs/akka/current/typed/guide/tutorial_1.html

前两个看起来非常简单明了,类似于我在Erlang上使用并看到的actor模型实现。 官方文档中的一个看起来最复杂。

所以我对使用哪个以及何时使用感到有些困惑?

1 个答案:

答案 0 :(得分:1)

  • akka.actor.typed.javadsl.AbstractBehavior是用于参与者的新的“类型化” Java API,它稍微冗长一些,但可以为您提供更好的类型安全性。我们建议从Akka开始的新项目从2.6开始使用它,并向前发展。
  • akka.actor.AbstractActor是针对演员的“经典”(Akka 2.6之前的)Java API,它在Java 8中添加了对Lambdas的支持。由于新的API并没有消失,但将会在不久的将来出现。很长一段时间,因为许多系统都是使用它构建的。
  • akka.actor.UntypedActor是Java 8之前的较早的Actor Java API,在Akka 2.5中已弃用,现在(2.6)已删除。