清單 前言 預備知識 CAP理論 前言 在做任何系統設計前,一定要自我先釐清整個系統會使用到的儲存空間會多大,可以透過不同的Use Case去思考,可能的使用量,當整個Storage都出來後再開始設計,系統會更加穩固,整個系統設計也會更貼切使用者的需求。 預備知識 關聯式資料庫 正規化 實踐方法 基本NoSQL概念 Concurrency知識 多執行序開發 死結 鎖 Neworking TCP/IP UDP File Systmes OS基礎 File System 如何運作 Database 如何運作 OS如何控制Cache 常用詞彙 Replication 複製品 其實也就是冗於,冗於通常用於災害發生時當作備案 Consistency 一致性 當分佈式系統時,你要怎樣確保使用者用到的檔案/資料是一致的 Eventual consistency 最終一致性 資料可以暫時的不同,但在使用者可以接受的時間內會達到一致 也代表說在當下可以暫時的不一致,但長時間內需正確 例如(座位餘額/即時時刻表) Availability 可使用性 服務是不是可以7*24提供服務 Partition Tolerance 部分容忍 多節點有災難時(通訊失敗/Crash)但是還是可以正常運行 Vertical scaling and Horizontal scaling Vertical scaling 垂直擴增 替機器增加資源(記憶體/硬碟/CPU) Horizontal scaling 增加Server的數量 Sharding 分片管理 將龐大的資訊切分成小部分,讓他可以更有效率 CAP理論 Consistency Availability Partition Tolerance 詳細的CAP範例可以參考我的另一篇翻譯文章 系統設計 - 基礎概念 CAP (Consistency, Availability, Partition Tolerance) 系統設計的五個步驟 釐清需求 估算資料量大小,該如何處理 如何Sharding 如何Caching 找出關鍵瓶頸點 找到此系統使用者最在乎...