Cassandra和许多其他类似的系统不提供事务支持。相反,它们提供了最终的一致性,这意味着系统的编写器最终将处于一致状态。有没有关于我如何使用来模拟事务可以模拟的东西的例子?
我理解,在某些情况下,我们需要最终的一致性。例如,我们可以很容易地容忍社交网络中的朋友列表并不总是最新的,等等。但如果出现酒店预订或汇款等系统,我们该怎么办?谷歌应用程序引擎有实体组,我们能在一个提供最终一致性的系统中以某种方式模仿它们吗?
在哪里可以找到类似架构的示例?
您可以在没有事务的情况下实现分布式一致性(对于单个操作),但不能实现原子性 Cassandra支持可调一致性级别(CL)——您可以为每次读写指定一致性级别。看见http://wiki.apache.org/cassandra/API. 这些级别的范围从 然而,它并没有为您提供将操作分组为原子事务的方法,从而使它们全部成功或全部失败(尽管我认为同一行上的多个操作是原子的,但不是独立的)。 另请参阅:CL.ANY
(最初从单个节点读取或向单个节点写入)到CL.ALL
(以牺牲可用性为代价提供完全一致性)。