大型系统架构模型的理解

一、简单模型:CDN、Redis,索引,原理就是:“空间换时间”、“高速设备提升性能”
 
二、复杂模型:
    (一)、“数据并行度”和“数据一致性”之间的取舍。
        1、单机数据库:ACID中的I其实就是“一致性”和“并行性”的取舍结果:C要求高,则加锁,并行度低;C要求低,则并行度高。
        2、分布式系统:CAP理论中,C一致性如果理解为最强一致性,则意味着在某个一个特定时刻,系统间/内存磁盘间完全一致;P表示一个需要多个分区;A表示即使一个分区坏掉依然可以提供服务。具体场景如下:
            (1)、分布式两个系统S1、S2,S1调用S2,S1、S2数据一致
                    如果坚持CP,则B挂掉不能提供服务,即需要放弃A
                    如果坚持AP,则意味着S2没有正常执行流程,数据不一致,即放弃C
                    如果坚持CA,则以为着S1、S2必须在一个系统内,即放弃P
            (2)、内存和磁盘数据一致
                    关系型数据库实现了CA,没有实现P,性能最差
                    HBase不需要表关联且放弃事务管理,C较弱,但每次均会落盘,性能适中
                    Redis则一定时间段后落盘,因此C最差,但性能最好
            (3)、ATM机和银行核心系统:
                    当中间网络断开时,A意味着需要吐钱,C意味着不能吐钱。
                    而按照乐观方式,那就是采用A,之后通过对账进而实现C,但有可能C本身应该失败(比如余额不足),那么C的责任只能银行自己承担了。

猜你喜欢

转载自ituski.iteye.com/blog/2227372