在我工作的公司,我们正在处理一个巨大的问题:我们有一个系统,包含几个处理单元。我们这样做,所以每个模块都有特定的功能。这些模块之间的集成是使用队列系统完成的(这不是很快,但我们正在处理它)并在这些模块之间复制消息。问题是这会产生大量开销,因为其中四个系统需要相同类型的数据,并且维护这些模块的一致性是不好的。
系统的另一个要求是冗余,所以我想一次性解决这两个问题。
所以我在考虑使用某种共享资源。我查看了共享内存(这很好,但如果导致程序不一致的module crashes可能导致锁定不一致),并且可能会从段中执行一些“原始副本”到另一台计算机来执行冗余。
所以我开始寻找替代方案,想法和类似的东西。我找到了一个noSQL,但我不知道我要求的速度是否足够。
我需要一些东西(理想情况下):
答案 0 :(得分:1)
我也认为共享内存是要走的路。要提供冗余,请让每个进程将要更改的数据复制到本地/非共享内存。只有在模块完成其工作后,才将其复制回共享内存。确保“复制到共享内存”部分尽可能小,并且在执行复制时不会出错。你可以使用的一些技巧是: