Akka介绍
刚刚看完DCI架构,个人总结从事件模式角度可以很好实现DCI,结果从Akka上得到验证。
Akka有几个特性:
1.更加简单的并发策略Simpler Concurrency,通过Actors STM & Transactors能够简化编写可靠的并行计算。
2.EDA架构Event-driven Architecture,完美的异步事件驱动架构,不会堵塞。
3.真正的可伸缩性,使用异步消息在多核以及多个节点之间扩展。
4.容错性,重视失败。
5.远程透明性
Introducing Akka – Simpler Scalability, Fault-Tolerance, Concurrency & Remoting Through Actors一文对Akka进行了详细介绍。
Actor Model是用来编写并行计算或分布式系统的高层次抽象,让程序员不必为多线程模式下共享锁而烦恼,被用在Erlang 语言上,高可用性99.9999999 % 一年只有31 ms当机。
Actors将状态和行为封装在一个轻量的进程/线程中,但是不和其他Actors分享状态,每个Actors有自己的世界观,当需要和其他Actors交互时,通过发送事件和消息(看到Domain Events影子 呵呵),发送是异步的,非堵塞的(fire-and-forget),发送消息后不必等另外Actors回复,也不必暂停,每个Actors有自己的消息队列,进来的消息按先来后到排列,这就有很好的并发策略和可伸缩性,可以建立性能很好的事件驱动系统。
Akka有Scala API和Java API,Scala使用方式如下:
|
Actors非常轻量,大约600字节,这样4 G RAM可以容纳6.5 百万个Actors。
该文后面介绍了Akka的消息系统,个人感觉和JMS非常类似,如果你了解JMS,很容易理解,除此以外介绍了Scala的trait ,一种类似AOP的静态混合器Mixin。
[该贴被admin于2011-05-16 09:03修改过]