大数据系列修炼-Scala课程100
来源:互联网 发布:网络兼职诈骗怎么报案 编辑:程序博客网 时间:2024/05/21 06:57
大数据系列修炼-Scala课程100
核心内容:
1、使用SBT开发Akka第一个案例源码解析消息、main入口、MasterActor
1、使用SBT开发Akka第一个案例源码解析消息、main入口、MasterActor
1>ActorSystem是整个Akka的监控容器体系。
2>mapActor ! message语法中消息的发送者是main方法所在的Actor,而mapActor是消息的接受者,main方法在运行的时候也是运行
在Actor之上的。
3>Scala语言具有很强的语言表现力。
4>Scala语言中的case 匹配机制功能类似于if条件表达式。
实例程序1:main程序入口
package akka.dt.app.scala.messagesimport akka.actor.{ActorRef, ActorSystem, Props}import akka.dt.app.scala.actors.MasterActorobject HelloAkka{ def main(args: Array[String]): Unit = { //在scala语言中,创建ActorSystem实际上有两种方式 val system: ActorSystem = ActorSystem.apply("HelloAkka") //ActorSystem实际上是一个静态类 val master: ActorRef = system.actorOf(Props[MasterActor],"master") //本行代码后续还要改动 master ! "Scala and Hadoop" //ActorSystem向masterActor发送消息 master ! "Java and Spark" //注意:master在这里实际上是消息的接受者 master ! "Hbase and spark" //!在这里实际上是一个函数 Thread.sleep(2000) master ! new Result //获取最终的消息 Thread.sleep(2000) system.shutdown() }}
实例程序2:MasterActor程序
package akka.dt.app.scala.actorsimport akka.actor.{Actor, Props}import akka.dt.app.scala.messages.Resultclass MasterActor extends Actor //继承的Actor不同,实现的方法也不同{ val aggregateActor = context.actorOf(Props[AggregateActor],"aggregate") val reduceActor = context.actorOf(Props(new ReduceActor(aggregateActor)),name = "reduce") //因为我们的MapActor会将结果交给ReduceActor,所以形式参数是ReduceActor。 val mapActor = context.actorOf(Props(new MapActor(reduceActor)),"map") //模式匹配在一定程度上功能相当于if override def receive: Receive = //在函数当中进行模式匹配对消息进行相应的处理 { case message:String => mapActor ! message case message:Result => aggregateActor ! message case _ => //不对消息进行任何的处理 }}
如有问题,欢迎留言指正!
0 0
- 大数据系列修炼-Scala课程100
- 大数据系列修炼-Scala课程01
- 大数据系列修炼-Scala课程02
- 大数据系列修炼-Scala课程03
- 大数据系列修炼-Scala课程04
- 大数据系列修炼-Scala课程05
- 大数据系列修炼-Scala课程06
- 大数据系列修炼-Scala课程07
- 大数据系列修炼-Scala课程08
- 大数据系列修炼-Scala课程09
- 大数据系列修炼-Scala课程10
- 大数据系列修炼-Scala课程11
- 大数据系列修炼-Scala课程12
- 大数据系列修炼-Scala课程15
- 大数据系列修炼-Scala课程17
- 大数据系列修炼-Scala课程18
- 大数据系列修炼-Scala课程19
- 大数据系列修炼-Scala课程20
- javaweb一些代码
- 11.3.2、基于消息通信的RPC调用 之 RabbirMQ分析
- 电脑小知识
- 栈和堆
- Android开源特效常用链接大集合
- 大数据系列修炼-Scala课程100
- 【Uvalive3942】Remember the Word——字典树+dp
- Gradle中打jar包的方法,Gradle 自动化构建工具,Android Studio 中 Gradle 的使用方法,AndroidStudio使用过程中遇到的bug
- ListView的优化
- UE4系列引擎的setup.bat
- linux内核的编译
- 欢迎使用CSDN-markdown编辑器
- Buy Low, Buy Lower 逢低吸纳
- 并查集—1001 舒适的路线题解