AKKA介绍(二)

上一篇提到,Akka是Actor内单线程编程模型,不共享状态,使用消息在actor间通信。有效的提升actor内的内聚性与降低actor间的耦合性。换个角度来看,其实akka的编程模型是真正的限定开发者从OO的角度思考与设计系统。

OO思想的本质是通过对象之间协作来实现业务价值,在整个设计过程中,对象的有效识别就变成了至关重要的环节。AKKA中的actor完天美的表达了OO对象,包括开篇提到的actor的几点特性,也体现出了出色的OO设计。

在OO设计实践中,对于抽象出的复杂对象,借助状态图完成对象生命周期建模,通过状态机实现状态流转与业务逻辑之间的解耦,在AKKA中架构中,Actor内嵌了状态机,当设计复杂对象时,可以基于面向生命周期建模状态图,并快速实现状态机。AKKA的FSM组件封装了状态机的DSL,可以大大简化状态机的实现。

Actor之间的通信是基于消息的,在AKKA中被抽象成命令,Actor接收一个命令,生成一个事件并完成状态转换,同时持久化事件到存储中。Akka的存储是基于Event Sourcing的,仅存储领域事件到存储中,当我们还原actor状态时,回播领域事件即可。这种基于Event Sourcing的持久化方案被称为Akka Persistece,它并不是一个DDD的框架,但当它设计实现的时候,与DDD的概念惊人的相似。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容