tangxuehua / enode

ENode is a framework aims to help us developing ddd, cqrs, eda, and event sourcing style applications.
http://www.cnblogs.com/netfocus/category/496012.html
MIT License
1.81k stars 564 forks source link

完善设计,降低并发的可能性 #53

Closed tangxuehua closed 8 years ago

tangxuehua commented 8 years ago

目前的设计,当enode处理command的机器扩容时,可能会导致并发冲突。所以解决思路是:每台机器处理每个聚合根的命令时,内存中判断一下该命令是否应该由这台机器处理。判断的依据是当前聚合根的ID的hashcode % 机器数。机器数哪里来?通过equeue获取。如何知道当前机器在这些机器中排第几?也是通过EQueue获取。当然,enode不能直接耦合equeue,但可以让equeue把信息设置给enode。

tangxuehua commented 8 years ago

该问题不严重,不做处理。