寫在前面:感謝GeekBand提供這樣好的學習機會,讓我在繁忙的工作之余可以學習鞏固c++知識。以下是邊學邊記的一些擴展點。分享給大家。
Scalability(擴展性)
Scalability指可以同時支持用戶正常使用的數量;
Scalability有限制:在有2個負載均衡時,系統可以支持1000名用戶,平均響應速度為3秒;
Performance針對單一用戶體驗,而Scalability指多個用戶同時操作的體驗。
Distributed System(分布式系統結構)
Master是管理器,Slave是工作節點
如何檢測一臺機器是否宕機
如果是工作節點宕機: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:解耦合,利于擴展,提升系統性能只需要提升關鍵部位的性能。
子系統同步通信更復雜
子系統依賴關系更復雜
應用拆分
數據庫拆分
image.png
Stateless
Session Vs Cookie
Cookie Session 交互機制