第一章 分布式架构
- 集中式
- 一台或多台主计算机组成中心节点,数据集中存储于中心节点,每个终端或客户端机器仅仅负责数据的录入和输出
- 部署结构简单(因为基于底层性能卓越的大型主机,不需考虑对服务多个节点的部署,也就不用考虑多个节点之间分布式协调问题)
- 分布式
- 一个硬件或软件组件分布在不同的网络计算机上,彼此之间仅仅通过消息传递进行通信和协调的系统。
- 特征:
- 分布性:在空间随意分布
- 对等性:没有主从之分,对等的,解决分布式数据丢失问题通常使用副本,数据副本、服务副本
- 并发性:协调并发操作
- 缺乏全局时钟:难以定义两个事件谁先谁后
- 故障总是会发生
- 分布式环境的问题
- 通信异常:消息丢失消息延迟
- 网络分区:部分节点能正常通信,一部分节点不能,出现局部小集群来完成原本需要整个分布式系统才能完成的功能
- 三态:每一次请求与响应存在三种状态:成功失败与超时。(单体有明确的成功与失败)
- 节点故障
- 从ACID到CAP/BASE
- ACID:
- 原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)
- CAP:一个分布式系统不可能同时满足一致性Consistency、可用性Availability和分区容错性Partition tolerance。
- 分区容错性P:遇到网络分区故障的时候需要能够保证对外提供满足一致性和可用性的服务
- 可用性A:对每一个操作请求都是在有限的时间内返回一个正常的结果
- 一致性C:多个副本之间是否能保持一致
- 放弃CAP定理:
- 放弃P:与事务相关的数据都放在一个分布式节点上。但是放弃了系统的可扩展性
- 放弃A:直接不可用
- 放弃C:放弃强一致性保持最终一致性
|