当咱们要使用Akka相关工具与技术时,可以使用DDD来帮助咱们设计Actor,设计组成整个系统的其它组件,将应用程序分隔为较小的系统的方式,了解子系统的边界以及它们如何交互。数据库
DDD是一套软件架构的指导原则,DDD中最重要的概念是域模型(Domain Model)。“域”是构成尝试建模的业务或领域的一组要求,约束和概念。DDD中,咱们专一涉及的业务领域,并围绕它构建软件系统模型。架构
DDD能够帮助咱们区分系统中的业务区域部分和基础架构部分,帮助咱们争取的在它们周围创造正确的抽象层,这样就不会触及边界。微服务
DDD的目标是将较大的领域业务分解成更小,更易于管理的业务块,而后分别对这些小的业务块进行构建,这样开发的系统不只对咱们更好理解,对领域专家来讲也更好理解。工具
任何有必定规模的系统都将天然分解为更小的组件,这些组件能够有本身的域,有本身的边界。学习
在Akka中,能够在系统中建立一系列顶级的Actor,让每个actor专门用于一个特定的有界上下文,有界上下文标识彼此隔离的而服务。设计
这种有界上下文与现代微服务体系结构很是类似,这种状况下,每一个微服务一般表明一个有界上下文。使用Akka Clustering,集群Sharding和Akka Http这样的工具能够将一个大型系统拆分为单独的有界上下文。对象
部署Actor的方式只是一个实现细节,而不是应用程序的固有部分,这样能够实现独立的缩放系统的不一样部分开发
了解Akka的actor模型,并知道如何与DDD结合觜火猴,你们便有了能够构建强大的、可扩展的、高度可维护的系统的必要组件,能够遵循这些已经创建好的模式保证系统的顺利构建。部署
学习Akka设计的学习笔记:it
参考《Akka 应用模式》