Akka历史和亮点(Akka 2)

来源:互联网 发布:旺宁扣字软件手机版 编辑:程序博客网 时间:2024/06/04 18:54

1.1     Akka历史

Akka是由瑞典程序员JonasBoner原创的框架,这个框架由Scala语言编写,并且提供对Java语言的API。Jonas Boner在供应商如BEATerracotta构建编译器,运行管理和为分发应用程序的开源框架。他在可扩展和弹性限制CORBA, RPC, XA,EJBs, SOA已经各种不同的Web Service标准和那些java开发者在过去20年里常常接触到的所有问题的抽象技术。他对处理这些问题的方式失去了信心,于是,他构建出了Akka Actor Kernel


Jonas Boner花费了大连时间研究 Oz  Erlang语言,他很喜欢Erlang为服务的失败管理模式,以及深刻理解来自Erlang Oz语言特性对于主流企业应用于并发和分布式计算的前端的内部原理。尤其当他领悟到Actor Model(在软件系统和数据流并发中强调分离和拥抱也桥接future特性)。在几个月的缜密思考和琢磨,BonerScala邮件列表的人分享了他对 Akka Actor Kernel(现在简称Akka)的想法。一个月之后(2009712号),JonasBoner在github上分享第一次发布版Akka 0.5 今天而言,Akka是一个开源的平台,主要的金融机构使用它去处理亿万级的事务,巨大的交换站点如WalmartGilt用来扩展他们的服务对于峰值使用。点击浏览Akka的发展的时间轴。

1.1.1 最近Akka亮点

Akka社区已经成长起来了,这个平台已经被利用来强化高交换性网站、数据分析、翻动大模块的数据、批量处理、实时处理和其它那些成功地解决低延迟和高吞吐的分布式计算使用案例。最近几点,Akka而言已经出现几个核心成长的领域。


Akka集群。在2013年,Akka2.2 版本已经以“Coltrane”起航,包括了完全支持集群特性。Akka Cluster 提供了容错非中心化的端对端为基础的集群关系服务,并且没有单一点的失败或者店逸点的瓶颈。它使用gossip协议和一个自动失败侦测。它也在提供一套如集群订阅/发布(clustered Pub/Sub)、单一集群、集群分片以及更多的高级模块领航。


Akka持久化。跨越分发系统可以预测帝处理失败时Akka调用卡片。那么,当运行的程序开始失败了,Actor的状态发生了什么变化呢?在201310月,Akka Persistence介绍了运行状态的actorJVM崩溃中恢复,以这种方法,Actor本身可以持久化到内存中。在Akka持久化中,这个核心观念称作Event Sourcing ,允许你去代替直接地存储一个actor的状态,持久化那些发送到actor的状态改变的事件。这些改变是一个个不争的事实,它们被填充到一个日子记录中(通过一个可插入持久存储而备份),这样就允许特别高事务率、高效的重复、迁移、重新转发、审核以及其它强大的失败管理层。


Akka Streams。以历史观点而言,在JVM(java虚拟机)上,对于开发者和操作者而言,基于Stream处理已经变得很危险。因为当数据被比接受者能够操作的高速率被流花(streamed),它构建在这个系统上直到没有剩余空间为止,导致生产上系统失败。在2014年4月,Typesafe宣布Akka Streams 发布,为帮助开发者更容易完成真正地异步编程、非阻塞数据流而设计的。


Akka Http。在20136月,Typesafe吸纳了Java生态体系中最好的实现REST/HTTP库之一的Spray.io。然后,在20146月,Typesafe宣布发布了第一个预览的核心模块 Akka HTTP –一个在Akka之上能够提供客户端/服务器RESTful支持的轻量级套件。它完全拥抱Actor- Future-Stream-为基础编程模块,能够在内在平台使用。这让开发使用符合语言习惯的JavaScala代码构建高性能和可扩展的RESTful应用程序,而不用担心封装的其它Java库。



欢迎关注我的微信公众号


1 0
原创粉丝点击