Akka 与 Java8 入门教程

8 9月

Actor

Actor 是akka 中最核心也是最基础的单位, akka 的所有消息都是基于 actor 实现的, 创建一个 actor 便可以完成消息的接收/处理/发送/转发/路由等待功能.

定义一个actor, 先从构造开始

紧接着我们来定义一种消息类型, 由于消息需要在网络传输, 所以都定义为 final 类型的, 如果是分布式系统, 有必要序列化消息

接着我们实现 Actor 接收到消息后的逻辑处理

你可以继续写很多 match 事件, 比如

我们定义的 actor 可能收到各种系统发来的消息, 不一定是 User.class 等等, 当没有匹配到的时候, 我们需要定义一个通用的处理逻辑, 相当于 else 的概念matchAny

先定义一个日志属性,可以用 akka 自带, 也可以集成第三方日志框架如 self4j

使用 matchAny

ActorSystem

接下来就是如何使用这些 actor 啦, 首先我们需要一个最顶级的 actor来创建我们需要的其余 actor.

这里说一下, actor 是有层级的, 最顶级有3个, 其中供我们使用的是 actorSystem, 用它来创建我们需要的 actors, 然后用某个 actor 继续创建子 actor 即可. 所以理论上来actorSystem只有一个全局的即可

所以, 收到 User 的时候, 我们主 actor 回收到回复, 收到 哇 的时候, 会打印日志

这里你可以使用 ask 来同步等待 actor 回复的消息, 比如

对 akka 感兴趣的, 多关注我吧!

发表评论

电子邮件地址不会被公开。