欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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. 运行结果,截个图吧


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

  • scala akka Microkernel(微内核) —— Hello World
            
    
    
        akka scala microkernel 微内核 
  • 大小: 147.8 KB