簡體   English   中英

使用Php開發可擴展的網站

[英]Developing a Scalable Website using Php

我將使用Php(Zend或Yii框架)開發一個社交+專業網絡網站。 我們的目標是每分鍾超過5000個請求。 我有使用MVC框架開發高級網站的經驗。

但是,這是第一次,我將開發一些保持可擴展性的東西。 所以,我真的很感激,如果有人能告訴我這些技術,我應該尋找。

我讀過關於memcache和APC的內容。 我應該找哪一個? 另外,我應該使用單個Mysql服務器還是主/從組合(如果以后,那么為什么以及如何?)

謝謝 !

您可能希望構建您的站點,至少使用主/從復制系統。 您不一定需要設置復制mysql框,但是您需要設計應用程序,以便數據庫讀取使用與寫入不同的連接(即使在開始時兩個連接都連接到同一個數據庫服務器)。

您還需要仔細考慮您的緩存策略。 我會看看memcache,雖然使用Zend_Cache你可以在早期使用基於文件的緩存,並在需要時交換內存緩存。 除了記錄緩存之外,您還需要考慮(部分)頁面級緩存,以及您希望在那里規划/實施哪種策略。

您還需要仔細規划如何處理用戶生成的媒體的存儲和檢索。 您希望能夠輕松地將這些內容從主服務器移動到專用的盒子上以提供靜態內容或某種CDN(內容分發網絡)。

另外,考慮一下如何處理會話管理,並確保您不會做任何阻止您將來使用非基於文件的會話存儲((專用)數據庫或memcache)的事情。

如果您仔細思考並抽象數據存儲/檢索,您將朝着一個良好的方向前進。

Memcached是一個分布式緩存系統,而APC是非分布式的,主要是操作碼緩存。

如果(且僅當)您的網站必須存在於不同的Web服務器(負載平衡),您必須使用memcache進行分布式緩存。 如果沒有,只需堅持APC及其緩存。


關於MySQL數據庫,我建議一個可以根據需要自動縮放的網格主機。

根據您網站的要求,數據庫更有可能成為您的瓶頸。 MVC框架傾向於犧牲性能以便於編碼,尤其是在ORM的情況下。 不要依賴ORM,而是以不同的方式查詢數據庫並查看哪些適合。 您希望最小化數據庫查詢的數量,一次獲取一大塊數據而不是執行多個小查詢。

如果你發現你的PHP代碼是瓶頸(優化之前的配置文件),你可能會發現facebook的hiphop很有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM