ref: https://vivek-singh.medium.com/system-design-cheat-sheet-318ba2e34723
本篇文章是一個筆記文,紀錄關於 System Design 路上常遇到的架構與元件,譬如
1. LoadBalancer
2. Caches
3. Queues
4. Configuration Service
5. API Gateway
6. Service Mesh
7. CDN
8. Cassandra
9. Snowflake
10. Numbers
每個概念都還會附上一些相關影片與文章,也因為是個筆記內容,因此每個元件的介紹都不會非常詳細,都是小小段落介紹每個元件的最基本概念。
譬如 LoadBalancer 的筆記有
1. L4/L7 兩種的差異
2. AWS 上 ELB/ALB/NLB 的三種差異
3. LB 的演算法, Round Robin,Weighted RR, Least Connection/Response Time/Resource based 等
Caches
1. 實作有 Memcached, Redis 等相關專案
2. 什麼時候會使用 Memcached:
a. 需求簡單,譬如單純 Key/Value 字串,可以輕易地透過調整 cores/threads 來調整效能。
b. Volatile,沒有儲存機制
c. 只有 LRU 的 Cache 演算法
d. Key 最多 250B, Value 最多 1MB
3. 什麼時候使用 Redis
a. 需要儲存 object,而非單純 string
b. 支援多種演算法
c. 支援 data store,可以達到 non-volatile 效果
d. 可以支援 Set/Hash/List/Sorted Set 不同型態
這類型的文章對於踏入 System Design 能夠提供一個簡易的入門介紹,先有哪些類別需要學習,再針對每個類別獨立學習也是一個不錯的學習路徑。
lru演算法 在 線上演算法| 他山教程,只選擇最優質的自學材料 的推薦與評價
所有例項σ∈Σ Π 則稱A 是一個嚴格的R-競爭力的線上演算法。 命題1.3: LRU 和FWF 是標記演算法。 證明: 在每個階段的開始(第一個階段除外), FWF ... ... <看更多>
lru演算法 在 資料結構與演算法:LRU 快取機制 - Joseph's blog 的推薦與評價
LRU (Least Recently Used Cache) 是一種快取的實做方式,概念是會儲存最近用過的內容,會透過Hash Map與Double Linked List 來搭配實做,如果欲常被使用, ... ... <看更多>