架構組件比較

作爲一個架構師,就必須要考慮如何選型,我們從性能、功能、配置上來進行比較篩選。

軟件名稱 性能 功能 過濾規則配置
Squid 不能多核是硬傷;
磁盤緩存容量有優勢;
性能中等
多;
支持ACL角色控制;
支持ICP緩存協議
支持外部文件讀取及熱加載;
支持熱啓動
Varnish 多核支持;
內存緩存;
性能強
夠用;
支持集羣,但不支持ICP集羣;
支持後端存活檢查
不支持外部文件讀取;
需要轉義;
支持熱啓動
Nginx 多核支持;
支持代理插件;
性能較強
多;
支持集羣,但不支持ICP集羣;
支持後端存活檢查;
通過插件可以充當多角色服務器
不支持外部文件讀取;
需要轉義;
支持熱啓動
Apache TS 多核支持;
磁盤/內存緩存;
性能強
夠用;
支持後端存活檢查;
支持ICP協議,Cluster不穩定;
支持插件開發;
支持外部規則文件讀取及熱加載;
支持熱啓動
HAProxy 多核支持;
無緩存;
支持HTTP頭部解析;
性能強
少,只專注HTTP頭部解析和轉發功能;
支持ACL角色控制;
支持後端存活檢查
支持外部規則文件讀取及熱加載;
支持熱啓動;
支持會話粘滯和長連接

現在,我們對這三層功能結構充分了解,在測試調優及生產線的實踐檢驗中,我們發現:

  • HTTP防禦性能:HAProxy在應對大流量CC攻擊時,做正則匹配及頭部過濾時,CPU消耗只佔10%~20%。其它軟件均狂佔CPU資源約90%以上,容易成瓶頸導致整個系統無響應。 
  • 反向代理性能:單純轉發效率以內存緩存型的Varnish性能最強,ATS和Nginx次之,考慮大容量緩存因素,ATS也是個不錯的選擇。Nginx是專門針對C10K的產物,性能不錯,配合自己編寫插件,業務可塑性很強。 
  • 過濾規則的可配置性:HAProxy,ATS,Squid均支持規則文件讀取、ACL定製和熱加載、熱啓動。Nginx則不支持外部文件正則匹配,略差一點,但可塑性強。

負載均衡——高可用性:LVS

LVS是個重量級、高效穩定的四層轉發,雖然不能作七層HTTP協議的識別,但完全可以架設在七層之前,與上述的各種軟件搭配使用。

所以,LVS的使用並不會影響網絡結構,後續仍然可以想上就上,前提是要兼顧到LVS的單點故障,這個我們可以通過Keepalived/Heartbeat來實現可用性和可靠性的保證。


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