一個網站的架構是進化出來的,不是設計出來的。
架構是爲了業務服務,在業務沒有達到足夠大的量級之前,沒有必要爲了架構而架構。只有隨着業務的規模變大,才逐漸有了架構的進化。
以一個在線電商平臺爲例,講一下架構的進化過程。
1. 單體服務器
商品/訂單/用戶/交易 都在一臺服務器上
2. 數據庫單獨部署
應用繼續增加,應用服務器承壓
3. 應用服務器做集羣
4. 數據庫讀書寫分離,部署多臺
(1)數據庫讀寫分離怎麼操作
(2)數據庫的同步
(3)數據庫路由
5. 引入搜索引擎
搜索引擎的索引數據怎麼去做同步? 實時增量同同步? 還是定時全量同步?
6. 解決訪問量持續增高
緩存 redis cdn
限流
降級
7. 數據庫的水平/垂直拆分
將一個應用服務器按業務拆分爲 商品 訂單 用戶等幾個數據庫
8. 對商品、 訂單、用戶等各個服務進行集羣 (分佈式)
session跨域共享問題 (cookie存儲jsessionID和 session)
session replication --> session 集中存儲 --> cookie