一、分布式架构详解
1、分布式发展历程
1.1 单点集中式
特点:App、DB、FileServer都部署在一台机器上。并且访问请求量较少
1.2 应用服务和数据服务拆分
特点:App、DB、FileServer分别部署在独立服务器上。并且访问请求量较少
1.3 使用缓存改善性能
特点:数据库中频繁访问的数据存储在缓存服务器中,减少数据库的访问次数,降低数据库的压力
1.4 应用服务器集群
特点:多台应用服务器通过负载均衡同时对外提供服务,解决单台服务器处理能力上限的问题
1.5 数据库读写分离
特点:数据库进行读写分离(主从)设计,解决数据库的处理压力
1.6 反向代理和CDN加速
特点:采用反向代理和CDN加快系统的访问速度
1.7 分布式文件系统和分布式数据库
特点:数据库采用分布式数据库,文件系统采用分布式文件系统
随着业务的发展,最终数据库读写分离也将无法满足需求,需要采用分布式数据库和分布式文件系统来支撑
分布式数据库是数据库拆分后的最后方法,只有在单表规模非常庞大的时候才使用,更常用的数据库拆分手段是业务分库,将不同业务的数据库部署在不同的机器上
二、 分布式技术详解
1. 并发性
2. 分布性
大任务拆分成多个任务部署到多台机器上对外提供服务
3. 缺乏全局时钟
时间要统一
4. 对等性
一个服务部署在多台机器上是一样的,无任何差别
5. 故障肯定会发生
硬盘坏了 CPU烧了....
三、分布式事务
1. ACID
原子性(Atomicity):一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被恢复(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。
一致性(Consistency):在事务开始之前和事务结束以后,数据库的完整性没有被破坏。这表示写入的资料必须完全符合所有的预设规则,这包含资料的精确度、串联性以及后续数据库可以自发性地完成预定的工作。
比如A有500元,B有300元,A向B转账100,无论怎么样,A和B的总和总是800元
隔离性(Isolation):数据库允许多个并发事务同时对其数据进行读写和修改的能力,隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致。事务隔离分为不同级别,包括读未提交(Read uncommitted)、读提交(read committed)、可重复读(repeatable read)和串行化&#