Akka 中的类型化和非类型化 Actor 之间有什么区别?什么时候用什么?

2022-09-01 16:06:47

我试图阅读Akka文档,以了解类型化和非类型化Actor之间的确切区别。什么时候用什么?我不确定我错过了什么。有人可以给我指出一些相关的东西,或者在这里为这个问题提供答案吗?


答案 1

UntypedActor只是Actor的名称,但作为Java API。

以下是一些文档链接:

爪哇岛:

Scala:

不同之处在于 TypedActors 具有静态接口,并且该接口上方法的调用转换为消息发送。非类型化操作程序可以接收任何消息。

希望有所帮助。

干杯,√


答案 2
Actors (Untyped)

对于参与者(Scala)来说,要接收消息,他们必须混合消费者的特征。例如,下面的执行组件类 (Consumer1) 实现在使用者特征中声明的 endpointUri 方法,以便从 file:data/input/actor Camel 端点接收消息。非类型化参与者(Java)需要扩展抽象的UntypedConsumerActor类,并实现getEndpointUri()和onReceive(Object)方法。

Actors (Typed)

类型化执行组件还可以从 Camel 终结点接收消息。与仅实现单个接收或 onReceive 方法的(非类型化)执行组件相比,类型化执行组件可以定义多个(消息处理)方法,每个方法都可以从不同的 Camel 终结点接收消息。对于要公开为 Camel 终结点的类型化执行组件方法,必须使用@consume注释对其进行批注。例如,以下类型的使用者参与者定义了两种方法:foo 和 bar。

参考


推荐