-
1 # 不會飛的雲930
-
2 # 賣螺絲的程式設計師
技術方案很多呀,總的來說就是從軟體層面和硬體層面兩個方向,逐步升級吧。
單臺伺服器時先是最佳化程式碼,然後升級配置。我的建議就是伺服器單臺32核64g為最划算的,再升級就不如買兩臺來分攤了。
最基礎的分配方案就是php 檔案一臺,mysql一臺,圖片和檔案一臺,快取一臺。這一般是一套電商系統最基本的搭配,開始流量少資料少可以配置低點,快取和php可以用一臺,圖片是一定要單獨伺服器,要不搬家換伺服器要折磨死你,建議用物件儲存。
如果你的資料量在百萬以下的,資料庫讀寫操作肯定不大,主要壓力在php,可以考慮生成靜態。百萬以上級別的資料就不建議生成了,靜態檔案太佔空間,搬家換伺服器也困難。這時候的壓力主要在mysql,壓力在查詢部分的,先使用redis或mencache來做sql查詢的快取,使用全文索引技術來做搜尋,推薦訊搜,二開簡單。 單表上百萬的用sql 做like查詢太慢,mysql負載太大。
一般幾萬ip,單表五百到一千萬,壓力在查詢的上面方案不錯。
壓力在寫操作的,用讀寫分離,兩臺mysql伺服器,一臺讀,一臺寫。
其實方案太多了,一時說不清楚,比如資料庫分散式,快取分散式,程式架構分散式。這些要根據具體情況來以最低成本來解決。
如果你不是程式設計師,下面我給你一個低成本方案
先是一臺伺服器來撐,配置升級到8核32g就打住。memcache或者redis必須要用,然後百度雲加速免費版的一定要用上。
撐不住了,如果是圖片多的網站,把圖片分離出去,現在的程式一般都支援圖片單獨存放的。七牛雲或者又拍雲,程式沒介面找人開發個,成本應該就一兩千。
如果還慢,壓力一般是在mysql,這時把MySQL換獨立伺服器,記住一定要買同一個機房的伺服器用內網連線,mysql伺服器可以不需要頻寬,或者為了管理方便買1m。
還慢的話,不要著急加伺服器,先找技術找慢的原因,最佳化sql語句,最佳化快取方案。
然後花錢買百度雲加速的套餐,扛一般的cc攻擊沒問題。
再慢的話考慮把資料量在五百萬以上的分表,這個成本估計稍微高點,比加伺服器做讀寫分離要高,不過治本。
分表後再做讀寫分離更好,不過要改程式,麻煩。現在一般程式都支援傻瓜式的配置讀寫分離,比分表簡單。
如果你自己沒有技術團隊,到這一步其實也就到頭了,再往下什麼一主多從,多主多從,分散式。負載快取,需要專業技術團隊來幹了,你得養一幫人了。
回覆列表
你好,我是一個java開發工程師,php-fpm我尚且不瞭解,簡單說說nginx。
1.可以根據時間分配到後端不同的伺服器,你可以理解為開銷售商分店,不同的時間讓你去不同的店裡。
2.分配權重,同樣用分店的例子來說,不同的分店規模不一樣,合理分配客流量,能更加高效。
3.後端叢集繫結ip_hash,避免登入驗證授權反覆的問題。
4.fair,根據響應時間分配伺服器優先順序。