分布式系统的事务处理转载代码的世界

来源:互联网 发布:注册淘宝客收费标准 编辑:程序博客网 时间:2024/05/17 06:08
当我们在生产线上用一台服务器来提供数据服务的时候,我会遇到如下的两个问题:

1)一台服务器的性能不足以提供足够的能力服务于所有的网络请求。

2)我们总是害怕我们的这台服务器停机,造成服务不可用或是数据丢失。

于是我们不得不对我们的服务器进行扩展,加入更多的机器来分担性能上的问题,以及来解决单点故障问题。 通常,我们会通过两种手段来扩展我们的数据服务:

1)数据分区:就是把数据分块放在不同的服务器上(如:uid % 16,一致性哈希等)。

2)数据镜像:让所有的服务器都有相同的数据,提供相当的服务。

对于第一种情况,我们无法解决数据丢失的问题,单台服务器出问题时,会有部分数据丢失。所以,数据服务的高可用性只能通过第二种方法来完成——数据的冗余存储(一般工业界认为比较安全的备份数应该是3份,如:Hadoop和Dynamo)。 但是,加入更多的机器,会让我们的数据服务变得很复杂,尤其是跨服务器的事务处理,也就是跨服务器的数据一致性。这个是一个很难的问题。 让我们用最经典的Use Case:“A帐号向B帐号汇钱”来说明一下,熟悉RDBMS事务的都知道从帐号A到帐号B需要6个操作:

  1. 从A帐号中把余额读出来。
  2. 对A帐号做减法操作。
  3. 把结果写回A帐号中。
  4. 从B帐号中把余额读出来。
  5. 对B帐号做加法操作。
  6. 把结果写回B帐号中。

为了数据的一致性,这6件事,要么都成功做完,要么都不成功,而且这个操作的过程中,对A、B帐号的其它访问必需锁死,所谓锁死就是要排除其它的读写操作,不然会有脏数据的问题,这就是事务。那么,我们在加入了更多的机器后,这个事情会变得复杂起来:

1)在数据分区的方案中:如果A帐号和B帐号的数据不在同一台服务器上怎么办?我们需要一个跨机器的事务处理。也就是说,如果A的扣钱成功了,但B的加钱不成功,我们还要把A的操作给回滚回去。这在跨机器的情况下,就变得比较复杂了。

2)在数据镜像的方案中:A帐号和B帐号间的汇款是可以在一台机器上完成的,但是别忘了我们有多台机器存在A帐号和B帐号的副本。如果对A帐号的汇钱有两个并发操作(要汇给B和C),这两个操作发生在不同的两台服务器上怎么办?也就是说,在数据镜像中,在不同的服务器上对同一个数据的写操作怎么保证其一致性,保证数据不冲突?

同时,我们还要考虑性能的因素,如果不考虑性能的话,事务得到保证并不困难,系统慢一点就行了。除了考虑性能外,我们还要考虑可用性,也就是说,一台机器没了,数据不丢失,服务可由别的机器继续提供。 于是,我们需要重点考虑下面的这么几个情况:

1)容灾:数据不丢、结点的Failover

2)数据的一致性:事务处理

3)性能:吞吐量 、 响应时间

前面说过,要解决数据不丢,只能通过数据冗余的方法,就算是数据分区,每个区也需要进行数据冗余处理。这就是数据副本:当出现某个节点的数据丢失时可以从副本读到,数据副本是分布式系统解决数据丢失异常的唯一手段。所以,在这篇文章中,简单起见,我们只讨论在数据冗余情况下考虑数据的一致性和性能的问题。简单说来:

1)要想让数据有高可用性,就得写多份数据。

2)写多份的问题会导致数据一致性的问题。

3)数据一致性的问题又会引发性能问题

这就是软件开发,按下了葫芦起了瓢。



http://www.myzhidao.com/wenda/324854.html
http://www.myzhidao.com/wenda/324852.html
http://www.myzhidao.com/wenda/324850.html
http://www.myzhidao.com/wenda/324849.html
http://www.myzhidao.com/wenda/324847.html
http://www.myzhidao.com/wenda/324845.html
http://www.myzhidao.com/wenda/324843.html
http://www.myzhidao.com/wenda/324840.html
http://www.myzhidao.com/wenda/324838.html
http://www.myzhidao.com/wenda/324837.html
http://www.myzhidao.com/wenda/324835.html
http://www.myzhidao.com/wenda/324833.html
http://www.myzhidao.com/wenda/324831.html
http://www.myzhidao.com/wenda/324829.html
http://www.myzhidao.com/wenda/324827.html
http://www.myzhidao.com/wenda/324825.html
http://www.myzhidao.com/wenda/324823.html
http://www.myzhidao.com/wenda/324822.html
http://www.myzhidao.com/wenda/324819.html
http://www.myzhidao.com/wenda/324817.html
http://www.myzhidao.com/wenda/324815.html
http://www.myzhidao.com/wenda/324814.html
http://www.myzhidao.com/wenda/324812.html
http://www.myzhidao.com/wenda/324810.html
http://www.myzhidao.com/wenda/324808.html
http://www.myzhidao.com/wenda/324806.html
http://www.myzhidao.com/wenda/324805.html
http://www.myzhidao.com/wenda/324802.html
http://www.myzhidao.com/wenda/324800.html
http://www.myzhidao.com/wenda/324798.html
http://www.myzhidao.com/wenda/324795.html
http://www.myzhidao.com/wenda/324794.html
http://www.myzhidao.com/wenda/324791.html
http://www.myzhidao.com/wenda/324789.html
http://www.myzhidao.com/wenda/324787.html
http://www.myzhidao.com/wenda/324785.html
http://www.myzhidao.com/wenda/324783.html
http://www.myzhidao.com/wenda/324781.html
http://www.myzhidao.com/wenda/324779.html
http://www.myzhidao.com/wenda/324777.html
http://www.myzhidao.com/wenda/324776.html
http://www.myzhidao.com/wenda/324774.html
http://www.myzhidao.com/wenda/324772.html
http://www.myzhidao.com/wenda/324770.html
http://www.myzhidao.com/wenda/324768.html
http://www.myzhidao.com/wenda/324767.html
http://www.myzhidao.com/wenda/324765.html
http://www.myzhidao.com/wenda/324763.html
http://www.myzhidao.com/wenda/324761.html
http://www.myzhidao.com/wenda/324760.html
http://www.myzhidao.com/wenda/324758.html
http://www.myzhidao.com/wenda/324756.html
http://www.myzhidao.com/wenda/324754.html
http://www.myzhidao.com/wenda/324751.html
http://www.myzhidao.com/wenda/324750.html
http://www.myzhidao.com/wenda/324748.html
http://www.myzhidao.com/wenda/324746.html
http://www.myzhidao.com/wenda/324744.html
http://www.myzhidao.com/wenda/324742.html
http://www.myzhidao.com/wenda/324740.html
http://www.myzhidao.com/wenda/324737.html
http://www.myzhidao.com/wenda/324735.html
http://www.myzhidao.com/wenda/324733.html
http://www.myzhidao.com/wenda/324731.html
http://www.myzhidao.com/wenda/324729.html
http://www.myzhidao.com/wenda/324726.html
http://www.myzhidao.com/wenda/324724.html
http://www.myzhidao.com/wenda/324722.html
http://www.myzhidao.com/wenda/324720.html
http://www.myzhidao.com/wenda/324718.html
http://www.myzhidao.com/wenda/324716.html
http://www.myzhidao.com/wenda/324714.html
http://www.myzhidao.com/wenda/324711.html
http://www.myzhidao.com/wenda/324708.html
http://www.myzhidao.com/wenda/324705.html
http://www.myzhidao.com/wenda/324702.html
http://www.myzhidao.com/wenda/324700.html
http://www.myzhidao.com/wenda/324698.html
http://www.myzhidao.com/wenda/324697.html
http://www.myzhidao.com/wenda/324695.html
http://www.myzhidao.com/wenda/324693.html
http://www.myzhidao.com/wenda/324691.html
http://www.myzhidao.com/wenda/324689.html
http://www.myzhidao.com/wenda/324687.html
http://www.myzhidao.com/wenda/324685.html
http://www.myzhidao.com/wenda/324683.html
http://www.myzhidao.com/wenda/324682.html
http://www.myzhidao.com/wenda/324680.html
http://www.myzhidao.com/wenda/324678.html
http://www.myzhidao.com/wenda/324676.html
http://www.myzhidao.com/wenda/324675.html
http://www.myzhidao.com/wenda/324672.html
http://www.myzhidao.com/wenda/324671.html
http://www.myzhidao.com/wenda/324669.html
http://www.myzhidao.com/wenda/324667.html
http://www.myzhidao.com/wenda/324666.html
http://www.myzhidao.com/wenda/324664.html
http://www.myzhidao.com/wenda/324663.html
http://www.myzhidao.com/wenda/324661.html
http://www.myzhidao.com/wenda/324658.html
http://www.myzhidao.com/wenda/324657.html
http://www.myzhidao.com/wenda/324655.html
http://www.myzhidao.com/wenda/324653.html
http://www.myzhidao.com/wenda/324652.html
http://www.myzhidao.com/wenda/324650.html
http://www.myzhidao.com/wenda/324648.html
http://www.myzhidao.com/wenda/324646.html
http://www.myzhidao.com/wenda/324644.html
http://www.myzhidao.com/wenda/324642.html
http://www.myzhidao.com/wenda/324640.html
http://www.myzhidao.com/wenda/324638.html
http://www.myzhidao.com/wenda/324636.html
http://www.myzhidao.com/wenda/324633.html
http://www.myzhidao.com/wenda/324631.html
http://www.myzhidao.com/wenda/324629.html
http://www.myzhidao.com/wenda/324626.html
http://www.myzhidao.com/wenda/324624.html
http://www.myzhidao.com/wenda/324622.html
http://www.myzhidao.com/wenda/324621.html
http://www.myzhidao.com/wenda/324619.html
http://www.myzhidao.com/wenda/324617.html
http://www.myzhidao.com/wenda/324615.html
http://www.myzhidao.com/wenda/324613.html
http://www.myzhidao.com/wenda/324611.html
http://www.myzhidao.com/wenda/324610.html
http://www.myzhidao.com/wenda/324608.html
http://www.myzhidao.com/wenda/324606.html
http://www.myzhidao.com/wenda/324604.html
http://www.myzhidao.com/wenda/324603.html
http://www.myzhidao.com/wenda/324601.html
http://www.myzhidao.com/wenda/324599.html
http://www.myzhidao.com/wenda/324597.html
http://www.myzhidao.com/wenda/324595.html
http://www.myzhidao.com/wenda/324593.html
http://www.myzhidao.com/wenda/324592.html
http://www.myzhidao.com/wenda/324590.html
http://www.myzhidao.com/wenda/324587.html
http://www.myzhidao.com/wenda/324585.html
http://www.myzhidao.com/wenda/324583.html
http://www.myzhidao.com/wenda/324581.html
http://www.myzhidao.com/wenda/324579.html
http://www.myzhidao.com/wenda/324577.html
http://www.myzhidao.com/wenda/324576.html
http://www.myzhidao.com/wenda/324574.html
http://www.myzhidao.com/wenda/324572.html
http://www.myzhidao.com/wenda/324570.html
http://www.myzhidao.com/wenda/324568.html
http://www.myzhidao.com/wenda/324567.html
http://www.myzhidao.com/wenda/324565.html
http://www.myzhidao.com/wenda/324562.html
http://www.myzhidao.com/wenda/324561.html
http://www.myzhidao.com/wenda/324559.html
http://www.myzhidao.com/wenda/324557.html
http://www.myzhidao.com/wenda/324555.html
http://www.myzhidao.com/wenda/324553.html
http://www.myzhidao.com/wenda/324551.html
http://www.myzhidao.com/wenda/324550.html
http://www.myzhidao.com/wenda/324548.html
http://www.myzhidao.com/wenda/324546.html
http://www.myzhidao.com/wenda/324544.html
http://www.myzhidao.com/wenda/324542.html
http://www.myzhidao.com/wenda/324540.html
http://www.myzhidao.com/wenda/324539.html
http://www.myzhidao.com/wenda/324537.html
http://www.myzhidao.com/wenda/324535.html
http://www.myzhidao.com/wenda/324533.html
http://www.myzhidao.com/wenda/324531.html
http://www.myzhidao.com/wenda/324529.html
http://www.myzhidao.com/wenda/324527.html
http://www.myzhidao.com/wenda/324526.html
http://www.myzhidao.com/wenda/324524.html
http://www.myzhidao.com/wenda/324522.html
http://www.myzhidao.com/wenda/324520.html
http://www.myzhidao.com/wenda/324518.html
http://www.myzhidao.com/wenda/324516.html
http://www.myzhidao.com/wenda/324514.html
http://www.myzhidao.com/wenda/324512.html
http://www.myzhidao.com/wenda/324510.html
http://www.myzhidao.com/wenda/324509.html
http://www.myzhidao.com/wenda/324507.html
http://www.myzhidao.com/wenda/324505.html
http://www.myzhidao.com/wenda/324503.html
http://www.myzhidao.com/wenda/324501.html
http://www.myzhidao.com/wenda/324499.html
http://www.myzhidao.com/wenda/324498.html
http://www.myzhidao.com/wenda/324496.html
http://www.myzhidao.com/wenda/324495.html
http://www.myzhidao.com/wenda/324492.html
http://www.myzhidao.com/wenda/324490.html
http://www.myzhidao.com/wenda/324489.html
http://www.myzhidao.com/wenda/324487.html
http://www.myzhidao.com/wenda/324485.html
http://www.myzhidao.com/wenda/324483.html
http://www.myzhidao.com/wenda/324482.html
http://www.myzhidao.com/wenda/324480.html
http://www.myzhidao.com/wenda/324478.html
http://www.myzhidao.com/wenda/324477.html
http://www.myzhidao.com/wenda/324475.html
http://www.myzhidao.com/wenda/324474.html
http://www.myzhidao.com/wenda/324472.html
http://www.myzhidao.com/wenda/324471.html
http://www.myzhidao.com/wenda/324469.html
http://www.myzhidao.com/wenda/324467.html
http://www.myzhidao.com/wenda/324465.html
http://www.myzhidao.com/wenda/324464.html
http://www.myzhidao.com/wenda/324462.html
http://www.myzhidao.com/wenda/324460.html
http://www.myzhidao.com/wenda/324459.html
http://www.myzhidao.com/wenda/324457.html
http://www.myzhidao.com/wenda/324455.html
http://www.myzhidao.com/wenda/324453.html
http://www.myzhidao.com/wenda/324452.html
http://www.myzhidao.com/wenda/324450.html
http://www.myzhidao.com/wenda/324449.html
http://www.myzhidao.com/wenda/324447.html
http://www.myzhidao.com/wenda/324445.html
http://www.myzhidao.com/wenda/324442.html
http://www.myzhidao.com/wenda/324440.html
http://www.myzhidao.com/wenda/324438.html
http://www.myzhidao.com/wenda/324436.html
http://www.myzhidao.com/wenda/324433.html
http://www.myzhidao.com/wenda/324431.html
http://www.myzhidao.com/wenda/324429.html
http://www.myzhidao.com/wenda/324426.html
http://www.myzhidao.com/wenda/324425.html
http://www.myzhidao.com/wenda/324423.html
http://www.myzhidao.com/wenda/324421.html
http://www.myzhidao.com/wenda/324418.html
http://www.myzhidao.com/wenda/324416.html
http://www.myzhidao.com/wenda/324414.html
http://www.myzhidao.com/wenda/324412.html
http://www.myzhidao.com/wenda/324411.html
http://www.myzhidao.com/wenda/324409.html
http://www.myzhidao.com/wenda/324408.html
http://www.myzhidao.com/wenda/324405.html
http://www.myzhidao.com/wenda/324402.html
http://www.myzhidao.com/wenda/324400.html
http://www.myzhidao.com/wenda/324398.html
http://www.myzhidao.com/wenda/324394.html
http://www.myzhidao.com/wenda/324392.html
http://www.myzhidao.com/wenda/324389.html
http://www.myzhidao.com/wenda/324387.html
http://www.myzhidao.com/wenda/324384.html
http://www.myzhidao.com/wenda/324382.html
http://www.myzhidao.com/wenda/324380.html
http://www.myzhidao.com/wenda/324378.html
http://www.myzhidao.com/wenda/324376.html
http://www.myzhidao.com/wenda/324372.html
http://www.myzhidao.com/wenda/324370.html
http://www.myzhidao.com/wenda/324368.html
http://www.myzhidao.com/wenda/324364.html
http://www.myzhidao.com/wenda/324362.html
http://www.myzhidao.com/wenda/324359.html
http://www.myzhidao.com/wenda/324357.html
http://www.myzhidao.com/wenda/324354.html
http://www.myzhidao.com/wenda/324351.html
http://www.myzhidao.com/wenda/324349.html
http://www.myzhidao.com/wenda/324347.html
http://www.myzhidao.com/wenda/324345.html
http://www.myzhidao.com/wenda/324343.html
http://www.myzhidao.com/wenda/324342.html
http://www.myzhidao.com/wenda/324340.html
http://www.myzhidao.com/wenda/324338.html
http://www.myzhidao.com/wenda/324336.html
http://www.myzhidao.com/wenda/324334.html
http://www.myzhidao.com/wenda/324332.html
http://www.myzhidao.com/wenda/324330.html
http://www.myzhidao.com/wenda/324329.html
http://www.myzhidao.com/wenda/324326.html
http://www.myzhidao.com/wenda/324324.html
http://www.myzhidao.com/wenda/324323.html
http://www.myzhidao.com/wenda/324321.html
http://www.myzhidao.com/wenda/324319.html
http://www.myzhidao.com/wenda/324317.html
http://www.myzhidao.com/wenda/324315.html
http://www.myzhidao.com/wenda/324313.html
http://www.myzhidao.com/wenda/324311.html
http://www.myzhidao.com/wenda/324309.html
http://www.myzhidao.com/wenda/324307.html
http://www.myzhidao.com/wenda/324305.html
http://www.myzhidao.com/wenda/324303.html
http://www.myzhidao.com/wenda/324301.html
http://www.myzhidao.com/wenda/324299.html
http://www.myzhidao.com/wenda/324297.html
http://www.myzhidao.com/wenda/324295.html
http://www.myzhidao.com/wenda/324294.html
http://www.myzhidao.com/wenda/324292.html
http://www.myzhidao.com/wenda/324290.html
http://www.myzhidao.com/wenda/324288.html
http://www.myzhidao.com/wenda/324286.html
http://www.myzhidao.com/wenda/324284.html
http://www.myzhidao.com/wenda/324283.html
http://www.myzhidao.com/wenda/324281.html
http://www.myzhidao.com/wenda/324279.html
http://www.myzhidao.com/wenda/324277.html
http://www.myzhidao.com/wenda/324275.html
http://www.myzhidao.com/wenda/324273.html
http://www.myzhidao.com/wenda/324272.html
http://www.myzhidao.com/wenda/324270.html
http://www.myzhidao.com/wenda/324268.html
http://www.myzhidao.com/wenda/324266.html
http://www.myzhidao.com/wenda/324264.html
http://www.myzhidao.com/wenda/324262.html
http://www.myzhidao.com/wenda/324260.html
http://www.myzhidao.com/wenda/324258.html
http://www.myzhidao.com/wenda/324256.html
http://www.myzhidao.com/wenda/324254.html
http://www.myzhidao.com/wenda/324252.html
http://www.myzhidao.com/wenda/324251.html
http://www.myzhidao.com/wenda/324249.html
http://www.myzhidao.com/wenda/324247.html
http://www.myzhidao.com/wenda/324245.html
http://www.myzhidao.com/wenda/324243.html
http://www.myzhidao.com/wenda/324241.html
http://www.myzhidao.com/wenda/324239.html
http://www.myzhidao.com/wenda/324237.html
http://www.myzhidao.com/wenda/324236.html
http://www.myzhidao.com/wenda/324233.html
http://www.myzhidao.com/wenda/324232.html
http://www.myzhidao.com/wenda/324230.html
http://www.myzhidao.com/wenda/324228.html
http://www.myzhidao.com/wenda/324227.html
http://www.myzhidao.com/wenda/324225.html
http://www.myzhidao.com/wenda/324224.html
http://www.myzhidao.com/wenda/324221.html
http://www.myzhidao.com/wenda/324219.html
http://www.myzhidao.com/wenda/324218.html
http://www.myzhidao.com/wenda/324216.html
http://www.myzhidao.com/wenda/324214.html
http://www.myzhidao.com/wenda/324213.html
http://www.myzhidao.com/wenda/324211.html
http://www.myzhidao.com/wenda/324210.html
http://www.myzhidao.com/wenda/324208.html
http://www.myzhidao.com/wenda/324207.html
http://www.myzhidao.com/wenda/324205.html
http://www.myzhidao.com/wenda/324203.html
http://www.myzhidao.com/wenda/324202.html
http://www.myzhidao.com/wenda/324200.html
http://www.myzhidao.com/wenda/324198.html
http://www.myzhidao.com/wenda/324197.html
http://www.myzhidao.com/wenda/324195.html
http://www.myzhidao.com/wenda/324194.html
http://www.myzhidao.com/wenda/324192.html
http://www.myzhidao.com/wenda/324191.html
http://www.myzhidao.com/wenda/324186.html
http://www.myzhidao.com/wenda/324184.html
http://www.myzhidao.com/wenda/324181.html
http://www.myzhidao.com/wenda/324176.html




0 0
原创粉丝点击