聚合根是一种领域对象,领域对象不只是一个对象,有可能是对象群,那么就需要聚合根。
Context驱动开发很热门,在一个场景下,既有符合这个场景上下文的领域实体,也有相关行为,场景下的动词和名词都不能少,动词是事件行为,名词代表状态。
多个消费者如果需要顺序,实际也是可以方便自己实现的,在内存中做给类似事务机制中的监测的状态,监督每一步的完成。
如果想实现生产者和消费者之间的事务,那么引入JMS是一个方案:
事件生产者--->JdonFramework/Disruptor --->事件消费者/JMS的生产者--->JMS--->JMS的消费者。
因为第一个生产者和消费者之间是通过多线程完成,可靠性很高,如果你不信任就如同不信任多线程一样,关键是事件的消费者的任务不呢繁重,因为承担消费者也是一个线程,如果这个过程复杂,可靠性比较低,那么这时依靠JMS对消息生产者和消费者的强事务关系保证。
JMS事务的大概原理是:如果JMS的所有消费者在执行任务时出错,那么所有消费者都回滚,其他消费者如同没有接受处理这个消息一样,消息依然留在JMS服务器中,等待下次重试,规定重试次数失败后报错,但是消息依然留在JMS那里。