路飞学城Python-Day182
生活随笔
收集整理的這篇文章主要介紹了
路飞学城Python-Day182
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
Evernote Export
集群介紹 1.集群介紹集群:將多個(gè)物理機(jī)器組成一個(gè)邏輯計(jì)算機(jī),實(shí)現(xiàn)負(fù)載和容錯(cuò) 計(jì)算機(jī)集群簡(jiǎn)稱集群,是一種計(jì)算機(jī)系統(tǒng),它通過一組松散集成的計(jì)算機(jī)軟件或硬件連接起來高度緊密地完成計(jì)算工作,在某種意義上,他們可以被看做是一臺(tái)計(jì)算機(jī)。 組成要素 1.VIP:一個(gè)IP地址 2.分發(fā)器:nginx 3.數(shù)據(jù)服務(wù)器:Web服務(wù)器 傳統(tǒng)web訪問模型 用戶發(fā)起請(qǐng)求 服務(wù)器接收請(qǐng)求 服務(wù)器處理請(qǐng)求(壓力最大) 服務(wù)器響應(yīng)請(qǐng)求 缺點(diǎn): 單點(diǎn)故障 單臺(tái)服務(wù)器資源有限 單臺(tái)服務(wù)器處理耗時(shí)長(zhǎng)
單點(diǎn)服務(wù)器的解決辦法: 1.部署一臺(tái)備份服務(wù)器,宕機(jī)直接切換 服務(wù)器利用率低,成本高,切換不及時(shí),服務(wù)器壓力依然大 2.部署多臺(tái)服務(wù)器,根據(jù)DNS的輪詢解析機(jī)制去實(shí)現(xiàn)用戶分發(fā) 優(yōu)勢(shì)是用戶處理速度得到了提升,但是其中一臺(tái)有故障就會(huì)有一部分用戶訪問不了 3.使用DNS輪詢方案 4.多級(jí)陣列-集群模式
2.Nginx集群原理 在該集群中Nginx扮演的角色是分發(fā)器 任務(wù):接受請(qǐng)求、分發(fā)請(qǐng)求、響應(yīng)請(qǐng)求 功能模塊: 1.ngx_http_upstream_moudle??基于應(yīng)用層分發(fā) 2.ngx_stream_core_moudle 基于傳輸層分發(fā)模塊 Nginx集群其實(shí)是:虛擬主機(jī)+反向代理+upstream分發(fā)模塊組成 虛擬主機(jī):接受和響應(yīng)請(qǐng)求 反向代理:帶用戶去數(shù)據(jù)服務(wù)器拿數(shù)據(jù) upstream:告訴Nginx去哪個(gè)數(shù)據(jù)服務(wù)器拿數(shù)據(jù) 數(shù)據(jù)走向: 虛擬主機(jī)接受用戶請(qǐng)求 虛擬主機(jī)去找反向代理 反向代理讓去找upstream upstream告訴一個(gè)數(shù)據(jù)服務(wù)器IP Nginx去找數(shù)據(jù)服務(wù)器并發(fā)起請(qǐng)求 數(shù)據(jù)服務(wù)器接收并處理請(qǐng)求 數(shù)據(jù)服務(wù)器響應(yīng)請(qǐng)求給nginx nginx響應(yīng)請(qǐng)求給用戶 3.實(shí)現(xiàn)基于Nginx分發(fā)器的web集群 Nginx安裝 配置業(yè)務(wù)服務(wù)器頁(yè)面 配置nginx分發(fā)器 測(cè)試分發(fā) nginx集群默認(rèn)算法 upstream?module? nginx的upstream目前支持4種方式的分配 1.輪詢(默認(rèn)) 每個(gè)請(qǐng)求按時(shí)間順序逐一分配到不同的后端服務(wù)器,如果后端服務(wù)器down掉,能自動(dòng)剔除 2.weight 指定輪詢幾率,weight和訪問比率成正比,用戶后端服務(wù)器性能不均的情況 3.ip_hash 每個(gè)請(qǐng)求按訪問ip的hash結(jié)果分配,這樣每個(gè)訪客固定訪問一個(gè)后端服務(wù)器,可以解決session問題 4.fair(第三方) 按后端服務(wù)器的響應(yīng)時(shí)間來分配請(qǐng)求,響應(yīng)時(shí)間段的優(yōu)先分配 5.url_hash(第三方) 按訪問url的結(jié)果來分配請(qǐng)求,使每個(gè)url定向到同一個(gè)后端服務(wù)器,后端為緩存時(shí)比較有效。 每個(gè)設(shè)備的狀態(tài)設(shè)置 1.down表示當(dāng)前的server暫時(shí)不參與負(fù)載 2.weight默認(rèn)為1.weight越大,負(fù)載的權(quán)重就越大 3.max_fails:允許請(qǐng)求失敗的次數(shù)默認(rèn)為1,1.當(dāng)超過最大次數(shù)時(shí),返回proxy_next_upstream模塊定義的錯(cuò)誤 4.fail_timeout:失敗超時(shí)時(shí)間,在連接server時(shí),如果在超時(shí)時(shí)間之內(nèi)超過max_fails指定的失敗次數(shù),會(huì)認(rèn)為在fail_timeout時(shí)間內(nèi)server不可用,默認(rèn)為10s 5.backup:其他所有的非backup機(jī)器down或者忙的時(shí)候,請(qǐng)求backup機(jī)器,所以這臺(tái)機(jī)器壓力會(huì)最輕 4.測(cè)試
?
轉(zhuǎn)載于:https://www.cnblogs.com/pandaboy1123/p/10154485.html
總結(jié)
以上是生活随笔為你收集整理的路飞学城Python-Day182的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: rest-framework之响应器(渲
- 下一篇: python一行代码打印Love心形