写在前面:感谢GeekBand提供这样好的学习机会,让我在繁忙的工作之余可以学习巩固c++知识。以下是边学边记的一些扩展点。分享给大家。
Scalability(扩展性)
Scalability指可以同时支持用户正常使用的数量;
Scalability有限制:在有2个负载均衡时,系统可以支持1000名用户,平均响应速度为3秒;
Performance针对单一用户体验,而Scalability指多个用户同时操作的体验。
Distributed System(分布式系统结构)
如何检测一台机器是否宕机
如果是工作节点宕机:Master节点可以检测到,并且把原来这个工作节点的服务迁移到其他节点
如果是Master节点宕机:使用备份节点检测,并且把这个备份节点设为Master节点。
分布式锁可以让分布式系统更有序运行,推荐Apache ZooKeeper
CAP理论(Consistency, Availability,Partition torlerance)
Consistency: 每一个客户端对数据读取一致;
Availability:每一个客户端都可以读和写;
Partition tolerance:不同的网络分区中有效存储;
分布式设计时只能三选二,不可同时占有。
Database System
ACID:关系型数据库 Relational DBMS
特点:Atomic Consistent Isolated Durable
BASE:分布式情况下的数据设计,CAP的延伸
Basically Avialble, Soft state, Eventually consistent.
应用拆分
Scale-up:系统越来越大,耦合越来越严重,难以维护和扩展,如果需要提升系统性能需要用上更好的设备和系统;
Scale-out:解耦合,利于扩展,提升系统性能只需要提升关键部位的性能。
子系统同步通信更复杂
子系统依赖关系更复杂
数据库拆分
Stateless
Session Vs Cookie