1. 程式人生 > >3-1-企業級架構拓展思路及集群負載均衡場景介紹

3-1-企業級架構拓展思路及集群負載均衡場景介紹

計算 單個 poi sql 文件系統 虛擬 server 瀏覽記錄 圖片

單主機不僅受限於硬件性能也受限於並發模型,select()1024
scale up向上擴展,用性能更好的主機代替性能略差的主機
scale out向外擴展,多加主機,分割任務,將任務分散處理,這叫做負載均衡集群load blancing cluster,簡稱為LB集群
第一步:分散用戶請求
第二步:追蹤用戶請求狀態信息,這是一個問題
第三步:用戶上傳文件的路徑在哪?使用共享存儲或者專用戶專機專用存儲(其他用戶就看不見本用戶上傳的文件了),要有兩種共享存儲,一種存圖片,一種存數據(數據庫)

補充知識:
數據分為:結構化的、半結構化的、非結構化的
共享存儲包括:nas nfs cifs
結構化的並且要求長度一致的存儲在關系型數據庫並支持事務的存儲引擎上,marydb indodb,如果是存儲文件的圖片音樂,存儲在文件系統結構上

半結構化的放在nosql中或文件系統之上比如jason格式的數據通常被組織成doucumentstore,稱為文檔存儲

用戶活動狀態不會產生網頁信息,而且是臨時的,一般而言,不應該存儲在服務器上。
cookie:通過cookie機制識別用戶身份,隨機唯一的id保存在瀏覽器的緩存路徑下,並且有適用範圍和有效期
胖fat cookie:用戶每次訪問的內容都保存在cookie中,很危險(客戶端的安全軟件有很高的權限可以分析),基於競爭機制(京東不希望淘寶分析)會保存在服務端,在服務端分配一段基於cookie的空間,用來記錄用戶訪問了什麽,多長時間,這些記錄通常叫session

有狀態的追蹤用戶:用戶的瀏覽記錄保存在服務器上,但是集群服務器怎麽知道其中一臺服務器保存的用戶內容呢?

1、綁定用戶,專機專用,根據網絡層的識別(ip地址)或者根據cookie來識別---這叫做會話黏性,缺點:服務器掛了
2、session復制集群,每臺服務器都會存有全部的session,並同步更新。缺點:數量大以及session的更新(io占用)
3、共享存儲,session保存在內存存儲服務器(基於內存)中---也叫做session server(專門保存session)缺點:每一個節點都事關全局
單點故障所在single point of failure:SPoF,為了解決一般做冗余
誰來分散用戶請求:負載均衡器或分發器或調度器,既然有調度,就需要有調度機制,負載均衡器采用主備機制(告訴別人自己活著,發送心跳信息),叫做故障轉移或失效轉移(failover)failback(轉移回來),這兩臺調度器服務器也叫做高可用集群(high availability cluster----HA集群),搶回來之後還要防止被搶回去
調度機制:輪詢(需要做權重,把服務器虛擬出來(調度的虛擬)一臺服務器相當於幾臺服務器3:2)
最少連接,
視頻中提到dns的輪詢,不適合使用這種方式

視頻中的課件:---負載均衡集群,高可用集群,高性能集群(超算集群),分布式集群
Linux Cluster:
Cluster:計算機集合,為解決某個特定問題組合起來形成的單個系統;
Linux Cluster類型:
LB:load balancing,負載均衡;
HA:High availiabity,高可用
A=MTBF/(MTBF+MTTR)---系統平均無故障時間,系統平均修復時間
(0,1):90%,95%,99%,99.5%,99.9%,99.99%,99.999%,99.9999%
HP:high performace,高性能,把計算量分割出去,組合高性能硬件
www.top500.org
分布式系統:
分布式存儲:元數據服務器,
分布式計算
系統擴展方式:
Scale UP:向上擴展
Scale Out:向外擴展
cluster
LB Cluster:
LB Cluster的實現:
硬件:
F5 Big-IP
Citrix Netscaler
A10 A10
軟件:
lvs:Linux Virtual Server---阿裏章文嵩---tcp
nginx---應用層(模擬工作在四層)
haproxy---應用層(模擬工作在四層)
ats:apache traffic server---雅虎開發---應用層(模擬工作在四層)
perlbal---應用層(模擬工作在四層)
pound---應用層(模擬工作在四層)
基於工作的協議層次劃分:---什麽層的調度器
傳輸層(通用):(D PORT)
lvs
nginx:(stream)
haproxy:(mode tcp)
應用層(專用):(自定義的請求模型類型)
proxy server:
http:nginx(http mode),httpd,haproxy(mode http),...
fastcgi:nginx,httpd,...
mysql:mysql-proxy,...PROXYSQL
站點指標:
PV:Page View---頁面瀏覽量
UV:Unique Vistor---唯一的可獨立標識的訪問者
IP:
會話保持:
(1)session sticky會話綁定
source ip
cookie
(2)session replication:復制集群
session cluster
(3)session server服務器

分布式存儲:類似於負載均衡,但是在負載均衡器上建立全局索引,但是會出現新的問題,服務器宕機,所以要做冗余(文件系統級別的不是服務器級別的,一個文件存兩份),負載均衡器叫元數據服務器(文件的大小路徑屬性),也叫名稱節點,存儲的叫數據節點
分布式存儲中小文件好說,可以很容易的分散存儲,但如果是高清電影,就不好存儲了,並發觀看更不行了

3-1-企業級架構拓展思路及集群負載均衡場景介紹