akka简单入门例子

spark版本里面用到的就是akka通信,2.0版本 已经不再使用akka了。这里写了一个简单的akka程序。
首先定义2个消息类
object MyRequest {
var message:String=null
}

object MyResponse {
var message:String=null
}

定义2个通信的actor
class Student(teacherRef:ActorRef) extends Actor{
val log=Logging(context.system,this)
def receive={
case MyRequest =>{
log.info(MyRequest.message)//teacherRef ! QuoteRequest2
teacherRef ! MyRequest
}
case MyResponse =>{
log.info(MyResponse.message)
}
}
}

class Teacher extends Actor {
val log=Logging(context.system,this)
def receive={
case MyRequest =>{
log.info("teacher已经收到信息=="+MyRequest.message)//teacherRef ! QuoteRequest2
MyResponse.message="ok ,i get it"
sender ! MyResponse
}
}
}

定义执行的主函数
object MyMain {
def main(args: Array[String]): Unit = {
val system = ActorSystem("HelloSystem")
// default Actor constructor
val teacherRef = system.actorOf(Props[Teacher], name = "myteacher")
val studentRef = system.actorOf(Props(new Student(teacherRef)), name = "mystudent")
MyRequest.message="这是我的邮件 请teacher查收"
studentRef ! MyRequest
}
}


运行结果如下:

[INFO] [10/25/2016 17:24:49.710] [HelloSystem-akka.actor.default-dispatcher-3] [akka://HelloSystem/user/mystudent] 这是我的邮件 请teacher查收
[INFO] [10/25/2016 17:24:49.710] [HelloSystem-akka.actor.default-dispatcher-2] [akka://HelloSystem/user/myteacher] teacher已经收到信息==这是我的邮件 请teacher查收
[INFO] [10/25/2016 17:24:49.710] [HelloSystem-akka.actor.default-dispatcher-2] [akka://HelloSystem/user/mystudent] ok ,i get it
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值