Akka简介

版权声明:个人原创,转载请标注! https://blog.csdn.net/Z_Date/article/details/84521571

Akka基于Actor模型,提供了一个用于构建可扩展的(Scalable)、弹性的(Resilient)、快速响应的(Responsive)应用程序的平台。

Actor是Akka中最核心的概念,Actor之间可以通过交换消息的方式进行通信,每个Actor都有自己的收件箱(Mailbox)。通过Actor能够简化线程管理,可以非常容易地开发出正确地并发程序和并行系统

3.1、Akka框架思路

3.2、利用Maven创建Scala项目

3.3、Akka编写Demo

一、组织配置文件 ​ val configStr= ​ s""" ​ |akka.actor.provider = "akka.remote.RemoteActorRefProvider" ​ |akka.remote.netty.tcp.hostname = "$host"

|akka.remote.netty.tcp.port = "$port" ​ """.stripMargin ​ val config: Config = ConfigFactory.parseString(configStr) ​ 二、先创建ActorSystem,使用ActorSystem启动master,注意ActorSystem单例,actor总管 ​ val actorSystem: ActorSystem = ActorSystem.create("actorSystem",config) ​ 三、启动Actor ​ val master: ActorRef = actorSystem.actorOf(Props(new Master()),"master") ​ 四、给自己发送消息 ​ //master!"start" ​ 五、等待处理结果完成后,关闭通信 ​ actorSystem.awaitTermination()

3.4、Akka实现简单的RPC

RPC(Remote Procedure Call)

解释:远程过程调用,简单理解就是实现RPC,就是实现进程之间者服务器之间的通信

AKKa获取其他Actor语法

//AKKa中找到其他Actor语法,参数:user固定写法,master为actor主机名
selection= context.actorSelection("akka.tcp://[email protected]:8888/user/master")

3.5、简单SparkRPC实现

Scala周期任务语法

//检查超过时间的work并清除(参数:延迟、执行周期、发送给哪个WOrk、发送的消息)
import context.dispatcher
context.system.scheduler.schedule(0 millis, 10000 millis, self, CheckWork)

注意:命名规范,类首字母大写

猜你喜欢

转载自blog.csdn.net/Z_Date/article/details/84521571