[PHP] 高流量網站服務建置高可用性(HA)架構

根據服務性質,要建置高可用性(High Availability)網站有不同的配法。

單純的靜態內容如果要完成高可用性的架構,最簡單的就是把檔案用很多台機器同步備份來服務,經典常聽到的服務就是 CDN。

如果需要用到資料庫的話就是把資料庫抽離,獨立一台或多台,讓服務平均被存取,消耗流量。

在更進階一點就是完整有互動的網站,此時不只有資料需要抽離,還包含瀏覽時的狀態(session)。今天的紀錄重點就是這個玩意兒!

對於高流量的網站,Session 如果使用預設的處理,是無法隨著 Load Balancer 附載平衡架構走的,也就是設計使用多台機器分流的做法會無法將個別使用者狀態保留。

另外,在進入 LB 架構前,高流量網站還有一定機率會因為 Session

造成空間資源浪費,導致佔用伺服器空間(個人經驗是 37GB 的 session 檔案),此時有沒有用對方法先解決問題,就會變成在這 hosting 方向支出是否適當的關鍵技巧。

上述說的可以參考這篇文章:PHP用memcache作为session的存放时遇到的问题备案。

文章裡有提到解決辦法是使用 memcached (不是 memcache 哦)

而如果要架設一個測試 LB 架構下小服務的模擬測試還可以參考這篇:基于LNMP实现动静分离,PHP+Memcached实现会话保持

兩篇文章都採用 memcached 服務來處理 session ,但也不是說只能用他哦!其他像是 Redis, MongoDB, MySQL 也有人拿來這樣處理,端看怎麼選擇囉~

#PHP #HA #LoadBalancer #Session #Redis #MongoDB #MySQL #技術相關

- Powered by Mxp.TW -FB2WP-

Facebook 外掛整合

Share: