Android Firefox java centos wordpress php 编程 开源 Ubuntu google Windows apache nginx 云计算 Python linux 微软 shell 程序员 mysql

網站的伸縮性架構,負載均衡的實現方式,緩存集群與數據庫集群處理

網站的伸縮性架構

指不需要改變網站的硬件設計,僅僅通過部署的服務器數量變更就可以擴大或者縮小網站服務處理能力。

架構的伸縮性

分層(縱向分離)

422101-20171018154353724-604677326.png

分割(横向分离)

422101-20171018154450318-236009452.png

單一功能通過集群實現伸縮

服務器集群的伸縮性設計

負載均衡

422101-20171018154831162-1857617599.png

1.HTTP重定向實現負載均衡

422101-20171018154937334-1222812572.png

優點:簡單

缺點:瀏覽器需要兩次請求服務器才能完成一次訪問。

2.DNS域名解析負載均衡

422101-20171018155339709-1664097445.png

優點:將負載均衡工作轉給DNS

3.反向代理負載均衡

422101-20171018172404287-232920931.png

億圖繪制

4.ip負載均衡

在網絡層通過修改請求目標地址,進行負載均衡。

422101-20171018172441818-747367047.png

5.数据链路层负载均衡

通过mac地址进行负载均衡

422101-20171018172619818-1952521431.png

負載均衡算法

1.輪詢

所有請求依次分發到每臺應用服務器上,即每臺服務器需要處理的請求數目都相同(適用於所有服務器硬件都相同的場景)

2.加權輪詢

根據配置的權重將請求分發到每個服務器,高性能的服務器分配請求多。

3.隨機

請求被隨機分配到各個服務器上

4.最少連接

記錄每個應用服務器正在處理的連接數,將新的請求分發到最少連接的服務器上。

分布式緩存集群的伸縮性設計

Memcached分布式緩存集群的訪問模型

計算機的任何問題都可以通過增加一個虛擬層來解決。

計算機網絡的七層協議,每一層都可以看做是下一層的虛擬層。

計算機操作系統也可以看做是計算機硬件的虛擬層。

JAVA虛擬機也可以看做是操作系統的虛擬層。

數據存儲服務器集群的伸縮性設計

mysql關系型數據庫集群方案

422101-20171018173825412-306770202.png

延伸阅读

    评论