顺序与多线程会计事件处理

时间:2010-12-31 14:39:39

标签: architecture event-driven event-driven-design

我们正在开发一个事件驱动的会计引擎,到目前为止,我们正在以批处理/顺序方式完成所有工作。

问题是每天创建数千个事件并按顺序处理所有事件会使其变慢。

有没有一种安全的方法可以实现多线程事件处理会计引擎而无需担心财务数据的完整性和一致性?

或者它是否更安全地发挥它并允许遵循批量/顺序方法?

3 个答案:

答案 0 :(得分:2)

也许你可能想要研究软件事务内存模型。这个概念已经在paper

中讨论过了

答案 1 :(得分:1)

您已经管理过构建会计引擎,以满足您的财务数据完整性和一致性要求。有了这个,并行化处理应该是可行的。

你需要

  • 一个新的调度程序组件,它负责为多个线程提供待处理的事件数据,同时保持一致性(即每个事件只记录一次)和
  • 一个新的聚合器组件,用于复用帐户上的评级事件。

通常,聚合器组件将成为并行体系结构的瓶颈。

由于您明确打算构建多线程应用程序:根据需求和环境,构建多进程设计可能是可行的,即并行运行多个独立进程。您将获得更简单的并发模型与进程间通信的平均需求。

几乎所有的电信计费系统都可以通过多线程或多处理进行扩展,因此这绝对是一条理想的前进方式。

答案 2 :(得分:0)

如果遵循规则,您可以使用多个并发事务

退房 en.wikipedia.org/wiki/Atomicity_(database_systems)
en.wikipedia.org/wiki/ACID
en.wikipedia.org/wiki/Record_locking

或阅读本节中的所有相关文章 http://en.wikipedia.org/wiki/Category:Transaction_processing

使用正确的锁定级别