1

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

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

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

还是只是安全地玩它并允许遵循批处理/顺序方法更好?

4

3 回答 3

2

也许您可能想研究软件事务内存模型。该概念已在本文中讨论

于 2010-12-31T14:46:11.797 回答
1

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

你需要

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

通常,聚合器组件将成为并行架构中的瓶颈。

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

几乎所有电信计费系统都通过多线程或多处理进行扩展,因此这绝对是一个明智的前进方向。

于 2011-01-01T20:13:04.303 回答
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

为您正在做的事情提供正确的锁定级别

于 2010-12-31T14:48:03.487 回答