个人博客导航页(点击右侧链接即可打开个人博客):大牛带你入门技术栈
Akka-Actor之Hello-World
actor是一种并发模型,akka是使用scala语言实现这种并发模型的一个库。在akka中,消息在不同的actor之间传递,以此来驱动任务的执行,这和一般的方法调用的方式有明显的区别。
每个actor都有自己的“地址”,这个地址可以用来唯一的标示一个actor实例,每个actor都有一个个“邮箱”,希望与该actor通信的其他actor将消息根据其“地址”发送其邮箱,邮箱可以看作是一个消息队列,actor会从其“邮箱”取出消息,根据不同的消息值做不同的逻辑处理。
下面通过例子代码来学习Actor,在这之前我们需要新建一个maven项目,并引入akka依赖:
<dependency>
<groupId>com.typesafe.akka</groupId>
<artifactId>akka-actor_2.13</artifactId>
<version>2.6.4</version>
</dependency>
注意,最开始akka的actor是untyped的,后来较新版的akka出了typed的,上面的依赖是untyped的,这里学习的也是untyped的。对于typed的,依赖是:
<dependency>
<groupId>com.typesafe.akka</groupId>
<artifactId>akka-actor-typed_2.13</artifactId>
<version>2.6.4</version>
</dependency>
actor
定义一个actor
在演示actor之前我们先定义一个简单的actor
既然actor的核心逻辑就是处理其他actor发过来的消息,那么actor应该有一个方法就是用于处理消息的。
我们通过继承UntypedAbstractActor
来实现自己的actor,通过Override名为onReceive
的方法来处理消息。
DemoActor.java
import akka.actor.UntypedAbstractActor;
public class DemoActor extends UntypedAbstractActor {
@O