扩展性(Scalability)
- 高伸缩性
- 添加资源就可以应对处理能力需求的增长
- 用户、流量、数据增长,性能指标不下降
- 度量增加系统处理能力的指标
- 系统性能
- 延迟:系统处理单词请求所需的时间
- 吞吐量:单位时间内系统处理次数
- 伸缩性&性能&成本等综合结果
- 伸缩性差
- 单用户性能正常
- 用户增长后性能指标下降
- 性能提升的成本高
横向扩展(Horizontal Scale)
- Scale out
- 增加更多机器,提高系统整体性能和处理能力
- 分布式架构
- 理论上可以无限扩展
- 经济成本
- 法律法规
- 物理限制(机房大小)
纵向扩展(Vertical Scale)
- Scale up
- 增加单机资源,提升单机性能,从而提高系统整体性能
- CPU
- 内存
- 存储设备
- etc
- 集中式架构
- 上限低,成本高
数据库事物一致性
- A-Atomicity(原子性):全部成功或者全部失败
- C-Consistency(一致性):从一个正确的状态到另一个正确的状态(强一致性)
- I-Isolation(隔离性):并发事务隔离,互不干扰
- D-Duration(持久化):状态变更不丢失
系统的三大特征
高可用(HA)
- 系统不能提供服务的时间趋近于零
- MTBF(Mean Time Between Failure):平均无故障工作时间
- MTTR(Mean Time To Repair):平均修复时间
- A = MTBF/(MTBF+MTTR)
- 解决方案:冗余
可靠性(Raliability)
- 在给定的时间间隔和给定条件下,系统可以无故障持续运行的概率
- 影响可靠性的因素
- 所有可能引起故障的因素
- 故障率越高可靠性越低
- 重点在故障次数
- Reliability是Availability的子集
稳定性(Stability)
- 在一个运行周期内、一定条件下,在持续操作时间内出错的概率
- 系统响应是否一致,行为是否稳定
容错(Fault tolerance)
- 在错误发生时,系统依然能够提供正确的功能的能力
- 直接关联到可靠性和可用性
- 解决方案:空间冗余(Space redundancy)
提供额外的组件、功能或数据(硬件、软件、信息) - 解决方案:时间冗余(Time redundancy)
重试(重新计算、重新传输)
分布式系统
- 一组独立的计算单元,通过网络连接并透明地对外提供统一服务
- 组件可以支持各自独立开发
- 对用户透明,用户感知是一个系统而非多个组件
- 组件间通过消息进行通信
- 易于扩展
CAP
概念
- C-Consistency(一致性)
系统中任一节点对外提供相同的,最新的、成功的写的结果 - A-Availability(可用性)
系统中的存活节点总能对外提供读写功能 - P-Partition toleration(分区容错)
部分分区失效时,系统仍旧提供正确的读写功能
分布式系统的CAP理论
- 一致性、可用性和分区容错性三者无法在分布式系统中被同时满足,并且最多只能满足其中两个
- CA系统
不允许P(分区容错),则保证强一致性和可用性 - CP系统
不要求可用性,系统内节点同步时间变长,如数据库集群 - AP系统
高可用并允许分区,每个结点用本地数据,放弃一致性