akka的actor可以实现spark的常驻

博客虽未给出具体内容,但标签显示与Spark有关。Spark是大数据开发领域的重要技术,可用于数据处理、分析等工作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package sparkcontext_actor

import akka.actor.{ActorSystem, Props}
//akka的actor可以实现spark的常驻
import scala.io.StdIn
/*
创建actorsystem一个实例,然后由实例创建一个子actor--> as.actorof 返回的是一个actor的代理 actorref,
由actorref与actor交互
 */
object Student extends App{

/*1.创建ActorSystem
//ActorSystem作为顶级Actor,可以创建和停止Actors,甚至可关闭整个Actor环境,
//此外Actors是按层次划分的,ActorSystem就好比Java中的Object对象,Scala中的Any,
//是所有Actors的根,当你通过ActorSystem的actof方法创建Actor时,实际就是在ActorSystem
下创建了一个子Actor*/
  val as = ActorSystem.apply()


  //通过ActorSystem创建TeacherActor的代理(ActorRef),即通这个actorsystem创建子actor角色
  //           def actorOf(props: Props): ActorRef
  val myActor = as.actorOf(Props(new MyActor(new Teacher("lc"))))
  //ActorSystem通过actorOf创建Actor,但其并不返回TeacherActor而是返回一个类型为ActorRef的东西,
  //ActorRef作为Actor的代理,使得客户端并不直接与Actor对话,这种Actor
  //模型也是为了避免TeacherActor的自定义/私有方法或变量被直接访问,所
  //以你最好将消息发送给ActorRef,由它去传递给目标Actor



  // 发送QuoteRequest消息到代理中.你只需通过!方法将QuoteReques消息发送给ActorRef(注意:ActorRef也有个tell方法,其作用就委托回调给!)
  while (true){
    val line = StdIn.readLine()
    myActor ! line
  }
}

=======================================

package sparkcontext_actor

import akka.actor.Actor


//这里继承actor必须要实现一个方法 receive方法,,,
class MyActor (teacher:Teacher) extends Actor{
  private var _teacher:Teacher = _

  override def receive: Receive = {
    case x:String => _teacher.answerQuestion(x)
    case _ => println("你的提问老师不能理解!")
  }

  override def preStart(): Unit = {//将传进来的参数初始化.
    _teacher = teacher
  }

  override def postStop(): Unit = {

  }
}

===============================

package sparkcontext_actor

class Teacher(name:String) {

  var _name:String = name


  def answerQuestion(question:String): Unit ={
    println(_name+"老师回答了问题:" + question)
  }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值