`

scala akka Microkernel(微内核) —— Hello World

阅读更多

        在这篇文章里记录了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. 运行结果,截个图吧



 

  • 大小: 147.8 KB
0
1
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics