2009年JdonFramework 6.2版本推出基于内存的异步领域事件版本,其关键点是Domain Model + In-memory + Domain Events.常驻内存In-memory的领域模型Domain Model通过领域事件Domain Events驱动技术实现各种功能,正如基因DNA是生命各种活动功能的核心一样,实现了以领域模型而不是数据表为核心的新的模型驱动开发架构MDD。
2011年Martin Fowler肯定了LMAX架构的领域模型in-memory事件架构.
JdonFramework原先Domain Events是使用JDK FutureTask实现的, 但是最快并发开源框架Disruptor的创建者LMAX团队测试发现JDK所谓带锁并发包性能不优异,他们也发现函数式语言的Actor模型是有瓶颈的,所以他们采取Disruptor这样配合多核CPU高速缓冲策略的新框架,破除了Java多核并发隐患了JVM伪共享。
JdonFramework 6.4版本引入了Disruptor作为其Domain Events实现机制,如下图:
JF的领域事件是一种异步模式 + 生产者-消费者模式。分为主题topic和Queue队列两种。领域模型是生产者;JF的消费者有两种:
(1).@Send => @Consumer;可以实现1:N多个,内部机制使用号称最快的并发框架Disruptor实现。适合轻量;小任务;原子性;无状态。
(2).@Send => @Componet;只能1:1,直接使用普通组件类作为消费者,使用jdk future机制,适合大而繁重的任务,有状态,单例。
有关新的JF领域事件见该文档:JdonFramework模型驱动快速开发
JiveJdon 4.4版本是基于JdonFramework 6.4版本的Disruptor新版本,基本使用Disruptor的DomainEventHandler替代了原来的MessageListener。其最新测试结果如下,由于将数据库等操作使用异步事件实现,回帖和帖子修改等写入性操作都是基于内存领域对象实现,性能大大提高:
领域事件是一种CQRS架构,也是一种Event Sourcing模式,可扩展性极强,通过以事件函数为核心,与面向函数思维一致,符合蒯因的引用透明原则和懒惰加载特性。
JdonFramework 6.4(Disruptor)版下载地址:SourceForge code.google.com下载
English: http://www.jdon.org/
JdonFramework on GitHub: https://github.com/banq/jdonframework