【Akka】Actor模型探索

Akka是什么Akka就是为了改变编写高容错性和强可扩展性的并发程序而生的。通过使用Actor模型我们提升了抽象级别,为构建正确的可扩展并发应用提供了一个更好的平台。在容错性方面我们采取了“let it crash”(让它崩溃)模型,人们已经将这种模型用在了电信行业,构建出“自愈合”的应用和永不停机的系统,取得了巨大成功。Actor还为透明的分布式系统以及真正的可扩展高容错应用的基础进行了抽象。Ak
摘要由CSDN通过智能技术生成

Akka是什么

Akka就是为了改变编写高容错性和强可扩展性的并发程序而生的。通过使用Actor模型我们提升了抽象级别,为构建正确的可扩展并发应用提供了一个更好的平台。在容错性方面我们采取了“let it crash”(让它崩溃)模型,人们已经将这种模型用在了电信行业,构建出“自愈合”的应用和永不停机的系统,取得了巨大成功。Actor还为透明的分布式系统以及真正的可扩展高容错应用的基础进行了抽象。

Akka是JVM(JAVA虚拟机,下同)平台上构建高并发、分布式和容错应用的工具包和运行时。Akka用 Scala语言写成,同时提供了Scala和JAVA的开发接口。

Akka处理并发的方法基于Actor模型。在基于Actor的系统里,所有的事物都是Actor,就好像在面向对象设计里面所有的事物都是对象一样。但是有一个重要区别——那就是Actor模型是作为一个并发模型设计和架构的,而面向对象模式则不是。更具体一点,在Scala的Actor系统里,Actor互相交互并共享信息但并不对交互顺序作出预设。Actor之间共享信息和发起任务的机制是消息传递。

Akka在多个Actor和下面的系统之间建立了一个层次(Layer),这样一来,Actor只需要处理消息就可以了。创建和调度线程、接收和分发消息以及处理竞态条件和同步的所有复杂性,都委托给框架,框架的处理对应用来说是透明的。

Akka混合模型特点

  • Actors
    Actors为你提供:
    对并发/并行程序的简单的、高级别的抽象。
    异步、非阻塞、高性能的事件驱动编程模型(代码可以异步处理请求并采用独占的方式执行非阻塞操作)。
    非常轻量的事件驱动处理(1G内存可容纳约270万个Actors)。
  • 容错性
    使用“let-it-crash”语义和监管者树形结构来实现容错。非常适合编写永不停机、自愈合的高容错系统。监管者树形结构可以跨多个JVM来提供真正的高容错系统。
  • 位置透明性
    Akka的所有元素都为分布式环境而设计:所有Actor都仅通过发送消息进行互操作,所有操作都是异步的。
  • 可伸缩性
    在Akka里,不修改代码就增加节点是可能的,感谢消息传递和位置透明性(location transparency)。
  • 高弹性
    任何应用都会碰到错误并在某个时间点失败。Akka的“监管”(容错)策略为实现自愈系统提供了便利。
  • 响应式应用
    今天的高性能和快速响应应用需要对用户快速反馈,因此对于事件的响应需要非常及时。Akka的非阻塞、基于消息的策略可以帮助达成这个目标。
  • 事务性Actors
    事务性Actor是Actor与STM(Software Transactional Memory)的组合。它使你能够使用自动重试和回滚来组合出原子消息流。
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值