第一章 可靠性,可擴展性,可維護性的應用系統
背景
目前多數的系統,屬於資料密集型 (data-intensive),著重於資料的量級、複雜度、快速變化等狀況延伸的問題。 主要組成為:資料庫、 cache 、 search index 、 steam processing 、 batch processing。 會根據情境來設計出相對合適的架構。
資料系統思維
書中將 Redis 、 Apache Kafka 等非 DB 也歸類在資料系統下的原因為,這些也根據情境提供了類似的功能使用, 不再是以傳統的角度,去分類這些服務。會透過組合這些服務,設計出系統。
三個思路
- 可靠 p.6
- 可擴展 p.10
- twitter tweets 優化
- user 觀看 feed 時,會先將關注的人的 feed 拉出合併,但在後續量級提昇造成查詢負擔。
- user 增加一個 cache feed ,當有新 tweet 時,放入到對應的 cache feed。
- 這邊最後的方式,根據 user 的 關注的人,來做兩種方式混合使用。
- Amazon SLO 用 P99.9
- twitter tweets 優化
- 可維護 p.18