scala akka Microkernel(微内核) —— Hello World akka scala microkernel 微内核
程序员文章站
2022-05-25 23:11:34
...
在这篇文章里记录了akka的hello world,其中akka是作为一个库,或者说一个jar包的形式放在classpath上使用的,下面说一下使用 Microkernel(微内核)的方式来初始化Actor系统
1. 首先从http://akka.io/downloads/下载一份releases版本,解压后,设置好AKKA_HOME,其中的deploy目录用来放应用的jar包,bin目录下放的是要启动内核使用的脚本
2. 创建scala maven项目,不知道的可以参见http://tbwuming.iteye.com/blog/2070053,需要添加依赖
<akka.version>2.3.2</akka.version> <dependency> <groupId>com.typesafe.akka</groupId> <artifactId>akka-actor_2.10</artifactId> <version>${akka.version}</version> </dependency> <dependency> <groupId>com.typesafe.akka</groupId> <artifactId>akka-kernel_2.10</artifactId> <version>${akka.version}</version> </dependency>
3. 要以微内核的方式运行,需要创建Bootable的子类,实现startup和shutdown方法,这两个方法分别是应用启动时和关闭时进行调用的
import akka.actor.{ Actor, ActorSystem, Props } import akka.kernel.Bootable case object Start class HelloActor extends Actor { val worldActor = context.actorOf(Props[WorldActor]) def receive = { case Start => worldActor ! "Hello" case message: String => println("Received message '%s'" format message) } } class WorldActor extends Actor { def receive = { case message: String => sender ! (message.toUpperCase + " world!") } } class HelloKernel extends Bootable { val system = ActorSystem("hellokernel") def startup = { println("startup, xxoo") system.actorOf(Props[HelloActor]) ! Start } def shutdown = { println("shutdown, xxoo") system.shutdown() } }
4. 运行,使用 mvn package打成jar包,将jar包放到deploy目录下,之后使用下面命令运行,如果想关闭,这使用Ctrl + C进行关闭
$ bin/akka org.wuming.akka.hello.kernel.HelloKernel
5. 运行结果,截个图吧