Akka简介和RPC程序总结

本文介绍了Akka框架的基础,重点讲述了Actor模型的概念,包括其并发、异步和高性能的特点。此外,还详细解析了Akka RPC程序的实现流程,包括Master和Worker的创建、连接与心跳机制,展示了如何利用Akka构建分布式系统。
摘要由CSDN通过智能技术生成

akka简介

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

Actor模型:在计算机科学领域,Actor模型是一个并行计算(Concurrent Computation)模型,它把actor作为并行计算的基本元素来对待:为响应一个接收到的消息,一个actor能够自己做出一些决策,如创建更多的actor,或发送更多的消息,或者确定如何去响应接收到的下一个消息。

举例说明:
1.每名学生和每名老师都是Actor,是用来接收和发送消息,处理逻辑的;

2.老师的leader, 学生的leader, 是ActorSystem,用来创建Actor,并且监控和管理Actor;

3.ActorSystem是单例的,一个线程中只有一个即可

4.Actor是多例的,可以创建多个实例

5.Actor变成是通过消息传递实现并发的;

Actor是Akka中最核心的概念,它是一个封装了状态和行为的对象,Actor之间可以通过交换消息的方式进行通信,每个Actor都有自己的收件箱(Mailbox)。通过Actor能够简化锁及线程管理,可以非常容易地开发出正确地并发程序和并行系统,Actor具有如下特性:
1.提供了一种高级抽象,能够简化在并发(Concurrency)/并行(Parallelism)应用场景下的编程开发
2.提供了异步非阻塞的、高性能的事件驱动编程模型
3.超级轻量级事件处理(每GB堆内存几百万Actor)

二. Akka RPC程序
** 流程简图**
RPC流程简图
RPC代码实现

1 创建Master类 启动Master

 1.1 指定配置(地址,端口等)

val confStr =
s"""
|akka.actor.provider = “akka.remote.RemoteActorRefProvider”
|akka.remote.netty.tcp.hostname = $masterHost
|akka.remote.netty.tcp.port = $masterPort
|""".stripMargin

 1.2 解析配置
 val configs: Config = ConfigFactory.parseString(confStr)
 
 1.3创建ActorSystem对象
  val actorSystem: ActorSystem = ActorSystem(MASTER_ACTOR_SYSTEM, config)
  
 1.4创建Actor对象
 val actor: ActorRef = actorSystem.actorOf(Props[MyMaster], "MASTER_ACTOR") 

2.创建Worker类,启动worker

    同Master类,区别在于创建ActorSystem对象时是 WORKER_ACTOR_SYSTEM.

3.master开启定时检查worker任务

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值