構建高可用性系統
避免單點
單點:系統部署在一臺機器上,該機器宕掉,系統就不可用.
解決辦法:集羣.
如何均衡?
如何切換?
解決:負載均衡技術,有硬件和軟件.增長負載均衡機器.負載均衡機器爲了不本身成爲單點,經過standby.
負載機器上配置了業務處理機器的ip到地址列表
均衡解決:
隨機:各個請求所耗資源差異不大時使用.
Hash:對請求作hash,爲命中緩衝.典型應用場景就是靜態圖片加載.
因爲要讀取網絡第7層協議又要作hash會耗費cpu
RR:(round_robin)按順序選擇,在各個請求所耗資源相差不大時使用.這種方式軟硬件都支持,目前使用比較多.
權重:爲ip配置權重,按權重選擇.分爲靜態權重和動態權重.靜態權重:當集羣中機器檔次不一樣時使用.動態權重:根據業務處理機器的運行狀態(load、鏈接數等)來權重.
負載:根據業務處理機的負載來選擇.適合各類請求處理所耗資源相差較大的狀況,避免請求均衡負載不均衡的情況.這要求負載機器每隔必定時間向業務處理機器收集負載情況.
負載機器有性能開銷,有時收集會延時或收集不到致使更大的負載不均衡.不多使用.
按鏈接數:根據實際業務處理機的鏈接數進行選擇.注意重啓的影響.不多使用.
除了以上選址外,一般支持按cookie信息綁定訪問相同的機器.這樣的好處是避免了分佈式緩衝.
切換
提升應用的可用性 cookie
垂直伸縮、水平伸縮,但願伸縮是線性的.
垂直伸縮:增長或升級一臺機器的硬件.水平伸縮:增長機器. 網絡