反向代理服務器:客戶端發現請求給反向代理服務器,反向代理服務器與后端真實服務器進行通信,并由反向代理服務器返回信息給客戶端
不同的服務,反向代理服務器使用的協議不同(如http、mysql等):
反代服務器后端的真實服務器一般是多臺服務器組成的集群
Linux Cluster:
集群:將多臺主機組織起來滿足同一個需求
系統擴展的方式(系統資源遇瓶頸時的擴展):
Scale UP:向上擴展(提供性能更好的服務器)
Scale OUT:向外擴展,水平擴展(利用分布式技術)
瓶頸在分布式服務器后端的共享存儲資源的訪問量
集群的類型:
LB:Load Banlance,負載均衡集群:
負載均衡器,調度器,分發器
后端主機(backend server,upsteaming server),LVS中稱為“真”服務器(real server)
HA:High Avaliblly,高可用集群(由相互冗余的服務器構成的集群)
Active:活動服務器
Passive、Standby:備用服務器
HA集群用于防止單點故障發生(SPOF)
可用性指標Avalibility=MTBF/(MTBF+MTTR) [平均無故障時間/(平均無故障時間+平均修復時間)] 在0-1之間 99.9%比99%可用性高了10倍
HP:High Performance
DS:Distributed System
hadoop:
mapreduce
hdfs
LB集群的實現:
1.DNS輪詢(效率不高) 起點公平
2.使用一臺服務器作為調度器,分配到后端的真實服務器 末端公平
硬件:
F5 BIG-IP
Critrix Netscaler
A10 A10
Array
Redware
軟件:
lvs: linux virtual server
haproxy
nginx
ats(appche traffice server)
perbal
基于工作的協議層次劃分:
傳輸層:
lvs,haproxy,nginx #lvs是真TCP層進行調度,工作在內核上;而haproxy和nginx是基于7層模擬調度
應用層:
haproxy(mode http),nginx,ats,perlbal
工作在傳輸層和工作在應用層調度的區別:
傳輸層:只需要在內核空間運行即可,不進行系統調用,直接使用IP地址;不需要維護程序套接文件,突破套接字文件限制和套接字數量限制
應用層:需要接受用戶請求并維護程序套接文件,還需要通過程序與后端進行請求數據,占用系統端口
因此lvs服務器優化得當將可達到400-500萬并發連接
HA集群的實現:
keepalived:vrrp協議主機層面的實現 #目前常用的HA集群
ais協會:
heartbeat
cman+rgmanager(RHCS)
corosync+pacemaker #目前常用的HA集群
系統構建需考慮的問題:
分層:不同類型的系統,使用不同服務器
分割:將一個大業務切成多個小業務,每個小業務放在一類服務器上
分布式:如RPC機制
應用
數據
存儲
計算
原創文章,作者:oranix,如若轉載,請注明出處:http://www.www58058.com/66280