2017-12-26 DDD架构

http://blog.didispace.com/microservices-caozupeng-3/

1.事物脚本

2.领域模型

当一个方法不便放在实体或者值对象上,使用领域服务便是最佳的解决方法,请确保领域服务是无状态的。


充血模型的缺点:

从上面的例子,在Repository的load 到执行业务方法,再到save回去,这是需要耗费一定时间的,但是这个过程中如果多个线程同时请求对Inventory库存的锁定,那就会导致状态的不一致,麻烦的是针对库存的并发不仅难处理而且很常见。

贫血模型完全依靠数据库对并发的支撑,实现可以简化很多,但充血模型就得自己实现了,不管是在内存中通过锁对象,还是使用Redis的远程锁机制,都比贫血模型复杂而且可靠性下降,这是充血模型带来的挑战。更好的办法是可以通过事件驱动的架构来取消并发

你可能感兴趣的:(2017-12-26 DDD架构)