蘑菇云代码
由于Spark使用的是Netty做通信,所以这块做了解就行,故不深入。
package com.dtspark.scala.basics
import scala.actors.Actor
object HelloActor {
def main(args: Array[String]): Unit = {
val helloActor = new HelloActor
helloActor.start()
val helloBackActor = new HelloBackActor(helloActor)
helloBackActor.start()
// var counter = 0
/*while (true) {
helloActor ! "Wow" + counter
counter += 1
Thread.sleep(3000)
}*/
// helloActor ! Hello("Spark", "Spark means Dollars")
}
}
case class Hello(name: String, content: String, sender:Actor)
case class HelloBack(name: String, content: String, sender:Actor)
class HelloActor extends Actor{
var counter = 0
def act() {
while(true){
receive {
case content:String => println("Message: " + content)
case Hello(name, content,sender) => {
println("HelloActor : " + "name: " + name + " content: " + content + counter)
counter += 1
Thread.sleep(3000)
sender ! HelloBack(name, content+counter, this)
}
}
}
}
}
class HelloBackActor(val helloActor: Actor) extends Actor{
var counter = 0
def act() {
helloActor ! Hello("Spark", "Love is here", this)
while(true){
receive {
case content:String => println("Message: " + content)
case HelloBack(name, content,sender) => {
println("HelloBackActor : " + "name: " + name + " content: " + content + counter)
counter += 1
Thread.sleep(3000)
sender ! Hello(name, content+counter, this)
}
}
}
}
}
以上内容来自[DT大数据梦工厂]首席专家Spark专家王家林老师的课程分享。感谢王老师的分享,更多精彩内容请扫描关注[DT大数据梦工厂]微信公众号DT_Spark