我有逻辑包括从一个系统中选择大量的记录,执行多个转换(基于业务规则),并插入到另一个系统的。
好像打到每个实例的这些记录为对象,对其执行变换,然后插入所有这些对象到另一个系统中的高性能(和内存)。
是实现这一目标的DDD跳过类/对象并做到这一点直通SQL,也许一个存储过程的最佳方式?
有没有使用DDD来实现这一目标的一个更好的办法?
注:该系统采用SQL数据库,此刻对象存储喜欢的CouchDB是不是一种选择。
我有逻辑包括从一个系统中选择大量的记录,执行多个转换(基于业务规则),并插入到另一个系统的。
好像打到每个实例的这些记录为对象,对其执行变换,然后插入所有这些对象到另一个系统中的高性能(和内存)。
是实现这一目标的DDD跳过类/对象并做到这一点直通SQL,也许一个存储过程的最佳方式?
有没有使用DDD来实现这一目标的一个更好的办法?
注:该系统采用SQL数据库,此刻对象存储喜欢的CouchDB是不是一种选择。
很多建立在DDD分布式系统中使用的是事件驱动的架构,在那里,而不是等待执行在一个批次中所有的转换,因为每个实体发生的状态变化,将导致其由系统进行改造,实体引发这被发布到某种(如骡子为Java,MassTransit用于.NET)的消息总线的事件。 您的转化体系将认购该事件,并为每个消息在您的系统到达时,它将在该消息中所标识的实体进行转换,然后发布另一个消息到目标系统。
这种“涓流处理”的可连续长时间没有把负载类型的系统,该系统将需要下班后正在运行作业上运行,一整天。 如果你关心性能,这种架构可能会导致有COB 5分钟后,改变了过去的纪录,其中批作业甚至可能不能够,直到凌晨3点运行(毕竟其他批处理作业有一个系统完成)。
如果你真的不想在目标系统进行更新,直到午夜,例如,只是队列中的消息,直到午夜,然后把它们发布到目标系统的端点。
格雷格杨在博客和这种架构的广泛介绍。 检查他的相关的工作。