單純想在winodows平臺部署分佈式程序,微軟在IIS擴展的介紹中有涉及到Application Request Router + Web Farm + Url Rewriter能夠實現分佈式部署以及管理工具,可是看到相關資料發現這套方案對於windows的系統依賴程度過高了,並且涉及到的工具配置也是至關的多,因此追求簡單以及讓你們對於負載均衡有一個瞭解,咱們選擇Nginx+IIS進行演示!(給我1分鐘,看完這一篇,咱們用數據和圖表來感覺)html
(1)官方概念:負載均衡,英文名稱爲Load Balance,其意思就是分攤到多個操做單元上進行執行,例如Web服務器、FTP服務器、企業關鍵應用服務器和其它關鍵任務服務器等,從而共同完成工做任務。nginx
(2)簡單的說分配任務的時候爲了達到最合理的安排會按照我的的能力去衡量,分配,每一個人都有本身的能力範圍和開發功底,so服務器也同樣,對於請求也有本身的處理能力.負載均衡必定程度增長網站的可用性,與承載請求壓力的能力。 web
(1)負載均衡服務器nginxwindows
Nginx ("engine x") 是一個高性能的 HTTP 和 反向代理 服務器,這一篇咱們主要用nginx做爲負載均衡服務器,Nginx做爲負載均衡服務器,既能夠在內部直接支持 Rails 和 PHP 程序對外進行服務,也能夠支持做爲 HTTP代理服務器對外進行服務。Nginx採用C進行編寫,不管是系統資源開銷仍是CPU使用效率都比 Perlbal 要好不少。瀏覽器
(2)網站IIS服務器
咱們經過部署多臺IIS站點進行壓力分攤併發
(1)建立測試站點mvc
咱們這裏默認建立一個mvc程序,我在頁面加載過程當中延遲0.5s,沒有其餘複雜操做負載均衡
咱們默認準備好3個部署文件,方便橫向的擴展測試,不一樣文件的首頁分別修改成節點01,節點02,節點03分佈式
(2)配置負載均衡nginx
下載地址:http://nginx.org/en/download.html 咱們最好下載Stable version穩定版本
follow me,進行nginx配置,我把下載的文件直接解壓到d盤符的nginx文件夾進行配置,打開D:\nginx\conf\nginx.config文件,修改內容以下圖
咱們將nginx監聽端口修改成咱們未被佔用的端口,而後開啓nginx
nginx -t 檢查nginx配置
網站和 nginx都準備完畢
配置修改
默認nginx負載均衡服務器爲BalanceNode-01 本機器測試
#啓動進程,一般設置成和cpu的數量相等 worker_processes 1; #工做模式及鏈接數上限 events { worker_connections 1024;#單個後臺worker process進程的最大併發連接數 } #設定http服務器,利用它的反向代理功能提供負載均衡支持 http { #設定負載均衡的服務器列表 #weigth參數表示權值,權值越高被分配到的概率越大 upstream web_pool { server 192.168.3.22:8081 weight=10; #本機器IIS部署BalanceNode-01 } server { listen 8080; #偵聽80端口 server_name web_pool; #定義使用www.xx.com訪問 #對 "/" 啓用反向代理 location / { proxy_pass http://web_pool; } } }
從新載入配置
再次訪問nginx地址,頁面直接變爲我本機器配置的BalanceNode-01
咱們使用上一篇提到的工具ApacheBench進行基準壓力測試 瞭解ab的請戳 here
#設定負載均衡的服務器列表 #weigth參數表示權值,權值越高被分配到的概率越大 upstream web_pool { server 192.168.3.22:8081 weight=10; }
#設定負載均衡的服務器列表 #weigth參數表示權值,權值越高被分配到的概率越大 upstream web_pool { server 192.168.3.22:8081 weight=10; server 192.168.3.24:8081 weight=10; }
#設定負載均衡的服務器列表 #weigth參數表示權值,權值越高被分配到的概率越大 upstream web_pool { server 192.168.3.22:8081 weight=10; server 192.168.3.24:8081 weight=10; server 192.168.3.26:8081 weight=10; }
打開一個瀏覽器,分別輸入地址,恰巧我這三次分別打開了BalanceNode01,BalanceNode02,BalanceNode03
你們能夠根據一個簡短測試感覺負載均衡的平攤壓力,提升吞吐量的做用.爲了下降影響到最小個人三個測試節點分別部署在不一樣機器上的,可是中途測試過程當中仍然有誤差過大的狀況,這時候我基本屢次測試,可是整體誤差不大。這一篇咱們介紹了負載均衡的高併發。可是仍舊有一些問題須要咱們繼續思考.....
eg:咱們只有一個nginx服務器,這一臺是咱們的入口,可是假設nginx G掉了,網站基本也就G掉了,因此網站並非高可用的.這個在windows平臺的解決方案須要繼續思考。