大型web解決方案

架構師:網絡構架、服務器構架、應用程序開發;

減少對數據庫的連接。


1、In Action

(1)大的併發量如何解決?

負載平衡:Linux LVS技術、Windows NLB技術、F5等負載均衡器、Cisco以太網通道

冗餘技術:避免單點故障。集羣中只有一個工作,其它都處於休眠狀態。









(2)大的數據如何存儲?

主從複製、讀寫分離、分區、集羣






(3)網站如何加速?

a、Squid代理緩存技術

Squid cache,即Squid是一個代理服務器和web緩存服務器。

Squid反向緩存——動靜分離;

靜態數據:

靜態頁面、圖片、flash、css、js文件


分離靜態和動態數據:需要使用反向代理Squid解決;緩存靜態數據


b、頁面靜態化緩存

動態頁面靜態化,有三種方法:

方法一:

可以使用Apache HTTP服務器的mod_rewrite等,它們是基於正則表達式解析器開發的重寫引擎。

方法二:

利用模板技術,將模板中特殊代碼的值替換爲從表單或是數據庫字段中接受過來的值,生成HTML。

方法三:

使用Ajax方式


c、Memcache:主要用於數據查詢;

Memcache是一個高性能的分佈式的內存對象緩存系統,通過在內存裏維護一個統一的hash表,能存儲各種格式的數據,如圖像、視頻、文件以及數據庫檢索的結果等。

Memcached以守護程序方式運行於一個或多個服務器中,隨時接收客戶端的連接和操作。


缺點是:因爲數據保存在內存中,很有可能導致數據丟失。



d、Sphinx搜索加速

Sphinx是一個基於SQL的全文檢索引擎,可以結合MySqL、PostgreSQL做全文檢索,可以提供比數據庫更專業的搜索功能。

Sphinx爲PHP、Python、Perl、java等設計了搜索API,也爲MySQL設計了一個存儲引擎插件。

Sphinx單一索引最大可包含1億條記錄。在1千萬條記錄情況下的查詢速度爲毫秒級。


搜索引擎有一個很重要的技術——分詞、高亮;


(4)服務器,如性能、磁盤、網卡流量如何監控?



2、TIPS

(1)LVS網絡負載均衡

(2)Mysql性能優化

(3)Sphinx全文索引



3、PS

(1)

(2)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章