Zookeeper技术:分布式架构详解、分布式技术详解、分布式事务
一、分布式架构详解 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)和串行化(Serializable)。 持久性(Durability):事务处理结束后,对数据的修改就是永久的,即便系统故障也不会丢失。 2. 2P/3P 2P= Two Phase commit 二段提交(RDBMS(关系型数据库管理系统)经常就是这种机制,保证强一致性) 3P= Three Phase commit 三段提交 说明:2P/3P是为了保证事务的ACID(原子性、一致性、隔离性、持久性) 2.1 2P的两个阶段 阶段1:提交事务请求(投票阶段)询问是否可以提交事务 阶段2:执行事务提交(commit、rollback) 真正的提交事务 2.2 3P的三个阶段 阶段1:是否提交-询问是否可以做事务提交 阶段2:预先提交-预先提交事务 阶段3:执行事务提交(commit、rollback)真正的提交事务 说明:3P把2P的阶段一拆分成了前面两个阶段 3. CAP理论 一致性(Consistency):分布式数据库的数据保持一致 可用性(Availability):任何一个节点挂了,其他节点可以继续对外提供服务 分区容错性(网络分区)Partition tolerance:一个数据库所在的机器坏了,如硬盘坏了,数据丢失了,可以新增一台机器,然后从其他正常的机器把备份的数据同步过来 CAP理论的特点:CAP只能满足其中2条 CA(放弃P):将所有的数据放在一个节点。满足一致性、可用性。 AP(放弃C):放弃强一致性,用最终一致性来保证。 CP(放弃A):一旦系统遇见故障,受到影响的服务器需要等待一段时间,在恢复期间无法对外提供服务。 举例说明CAP理论: 有3台机器分别有3个数据库分别有两张表,数据都是一样的 Machine1-db1-tbl_person、tbl_order Machine2-db2-tbl_person、tbl_order Machine3-db3-tbl_person、tbl_order 1)当向machine1的db1的表tbl_person、tbl_order插入数数据时,同时要把插入的数据同步到machine2、machine3,这就是一致性 2)当其中的一台机器宕机了,可以继续对外提供服务,把宕机的机器重新启动起来可以继续服务,这就是可用性 3)当machine1的机器坏了,数据全部丢失了,不会有任何问题,因为machine2和machine3上还有数据,重新加一台机器machine4,把machine2和machine3其中一台机器的备份数据同步过来就可以了,这就是分区容错性 4. BASE理论 基本可用(bascially available)、软状态(soft state)、最终一致性(Eventually consistent) 基本可用:在分布式系统出现故障,允许损失部分可用性(服务降级、页面降级) 软状态:允许分布式系统出现中间状态。而且中间状态不影响系统的可用性。 1、这里的中间状态是指不同的data replication之间的数据更新可以出现延时的最终一致性 (编辑:ASP站长网) |