windows第七層負(fù)載均衡 基于IIS的ARR負(fù)載均衡詳解

2019-02-25 14:22:03 來(lái)源:互聯(lián)網(wǎng)作者:禿驢竟敢跟貧道搶師太 人氣: 次閱讀 616 條評(píng)論

載均衡有很多種方法,有硬件負(fù)載均衡,軟件負(fù)載均衡,還可以從域名解析下手。小編就為大家分享一篇windows第七層負(fù)載均衡_基于IIS的ARR負(fù)載均衡詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧...

載均衡有很多種方法,有硬件負(fù)載均衡,軟件負(fù)載均衡,還可以從域名解析下手。小編就為大家分享一篇windows第七層負(fù)載均衡_基于IIS的ARR負(fù)載均衡詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧

不過(guò),今天只講軟件負(fù)載均衡。

軟件負(fù)載均衡一般分兩種,從網(wǎng)絡(luò)協(xié)議來(lái)講(tcp/ip),主要集中在第四層和第七層進(jìn)行負(fù)載均衡。

第四層就是基于IP進(jìn)行負(fù)載均衡。后面還有一篇文章講這個(gè)。

第七層就是應(yīng)用層。比如各種的WEB服務(wù)器。今天就講講IIS的負(fù)載均衡。

第七層的Web負(fù)載均衡,很多web服務(wù)器都支持,比如IIS,Nginx,apache等?,F(xiàn)在主要講一下windosw下IIS如何使用負(fù)載均衡

IIS使用ARR反向代理,實(shí)現(xiàn)負(fù)載均衡

什么是正向代理?

代理服務(wù)器大家可能聽(tīng)說(shuō)過(guò),比如我們說(shuō)的“科學(xué)上網(wǎng)”。就是使用代理服務(wù)器,請(qǐng)求經(jīng)過(guò)代理服務(wù)器轉(zhuǎn)到目的服務(wù)器。這是一個(gè)正向代理。用戶(hù)知道自己使用代理,并且充許用戶(hù)隱藏客戶(hù)端自身。

什么是反向代理?

請(qǐng)求同樣經(jīng)過(guò)代理服務(wù)器轉(zhuǎn)到目的服務(wù)器,目的服務(wù)器返回給代理服器,代理返回給客戶(hù)端。不同的時(shí)候,客戶(hù)并不知道,訪(fǎng)問(wèn)的是一個(gè)代理服務(wù)器??蛻?hù)認(rèn)為他在訪(fǎng)問(wèn)目的服務(wù)器。

兩者的區(qū)別基本在于,正向代理是發(fā)生在客戶(hù)端。反向代理是發(fā)生在服務(wù)端。

首先,我們先安裝一個(gè)Web平臺(tái)安裝程序

打開(kāi)web平臺(tái)安裝程序,搜索arr

寫(xiě)WebApi程序

[Route("api/[controller]")]
public class HomeController : Controller
{
 // GET: api/<controller>
 [HttpGet,Route("GetUserChat")]
 public async Task<ActionResult> GetUserChat()
 {
 var collection = new MongoHelper().GetCollection<OAChat>("OAChat");
 var chatItems =await collection.Find(n => n.ChatType == 2).Limit(5).ToListAsync();
 return ApiJsonFormat.GetJsonResult(chatItems);
 }
}

返回結(jié)果

{"ResultCode":1000,"Message":"成功","DetailError":null,"Data":[{"Id":"595225a5bbccc61ff88e89a7","ChatName":"testttt","ChatType":2,"CreaterUserId":76,"Members":[],"CreateTime":"2017-06-27 17:30:13","LastChatTime":"2017-11-10 17:43:17","LastChatText":"[定位]","IsDisbanded":false},{"Id":"5952445ebbccc71ff8adf671","ChatName":"測(cè)試2","ChatType":2,"CreaterUserId":13,"Members":[],"CreateTime":"2017-06-27 19:41:18","LastChatTime":"2017-06-27 19:48:47","LastChatText":"行","IsDisbanded":true},{"Id":"5952463dbbccc71ff8adf67d","ChatName":"巡視頻么么噠噠","ChatType":2,"CreaterUserId":13,"Members":[],"CreateTime":"2017-06-27 19:49:17","LastChatTime":"2017-12-20 19:47:17","LastChatText":"[定位]","IsDisbanded":false},{"Id":"59524c0ebbccc71ff8adf6ae","ChatName":"rrrffff","ChatType":2,"CreaterUserId":13,"Members":[],"CreateTime":"2017-06-27 20:14:06","LastChatTime":"2017-06-27 20:34:54","LastChatText":"6565","IsDisbanded":false},{"Id":"59531cdfbbccc414e8f6769f","ChatName":"都紛紛fee俄方熱熱","ChatType":2,"CreaterUserId":76,"Members":[],"CreateTime":"2017-06-28 11:05:03","LastChatTime":"2017-06-28 11:05:13","LastChatText":"123","IsDisbanded":true},{"Id":"59531de5bbccc414e8f676a1","ChatName":"天賦過(guò)人托管人","ChatType":2,"CreaterUserId":76,"Members":[],"CreateTime":"2017-06-28 11:09:25","LastChatTime":"2017-06-28 11:09:33","LastChatText":"呃呃呃","IsDisbanded":true},{"Id":"59531e40bbccc414e8f676a3","ChatName":"熱熱","ChatType":2,"CreaterUserId":76,"Members":[],"CreateTime":"2017-06-28 11:10:56","LastChatTime":"2017-06-28 17:58:41","LastChatText":"333","IsDisbanded":false},{"Id":"59532140bbccc414e8f676a6","ChatName":"會(huì)厭結(jié)核有機(jī)會(huì)好好","ChatType":2,"CreaterUserId":76,"Members":[],"CreateTime":"2017-06-28 11:23:44","LastChatTime":"2017-06-28 11:24:40","LastChatText":"eee","IsDisbanded":true},{"Id":"595321d3bbccc414e8f676a8","ChatName":"656565656","ChatType":2,"CreaterUserId":76,"Members":[],"CreateTime":"2017-06-28 11:26:11","LastChatTime":"2017-06-28 18:50:08","LastChatText":"ggg","IsDisbanded":false},{"Id":"5954d0eebbccc40fecbea435","ChatName":"r","ChatType":2,"CreaterUserId":76,"Members":[],"CreateTime":"2017-06-29 18:05:34","LastChatTime":null,"LastChatText":null,"IsDisbanded":false}]}

//設(shè)置ARR

192.168.99.5 //代理服務(wù)器
192.168.99.6 //目的服務(wù)器
192.168.99.7 //目的服務(wù)器
192.168.99.8 //目的服務(wù)器
192.168.99.10 //目的服務(wù)器
192.168.99.11 //目的服務(wù)器
192.168.99.12 //目的服務(wù)器
192.168.99.13 //目的服務(wù)器

首先給服務(wù)器安裝net core 運(yùn)行環(huán)境

DotNetCore.2.0.5-WindowsHosting 安裝包內(nèi)置SDK和WindowsHosting,直接安裝這個(gè),安裝成功之后,要重啟服務(wù)器才能生效。然后部署Web就可以訪(fǎng)問(wèn)了

選擇無(wú)托管代碼

好,部署成功之后,可以正常訪(fǎng)問(wèn)了

好,馬上試一下部署ARR,是否能實(shí)現(xiàn)反向代理

添加一個(gè)入口站點(diǎn),默認(rèn)端80。

非常簡(jiǎn)單數(shù)據(jù)出來(lái)啦。理論就搭建成功了。

192.168.99.5 的站點(diǎn),還有兩個(gè)地方要注意設(shè)置

IIS程序池的隊(duì)列長(zhǎng)度。由于這是代理服務(wù)器很多請(qǐng)求都會(huì)經(jīng)過(guò)這個(gè)站點(diǎn),所以這個(gè)長(zhǎng)度就設(shè)置長(zhǎng)一點(diǎn)。默認(rèn)值是1000。

IIS程序池的閑置超時(shí)。設(shè)置為0,將長(zhǎng)期保持不回收狀態(tài)。

轉(zhuǎn)化服務(wù)器的網(wǎng)卡要目的服務(wù)器的網(wǎng)卡要好,這樣能支撐更大的流量需求。

下面把一些細(xì)節(jié)介紹一下,然后做一下壓力測(cè)試,就大功告成啦。

安裝ARR完成之后,會(huì)出現(xiàn)兩個(gè)

URL重寫(xiě)充許你定則重寫(xiě)規(guī)則,我沒(méi)怎么用過(guò),特么不嫌麻煩。這就不細(xì)講了。

Server Farms可以對(duì)你的集群進(jìn)行管理,健康檢查,轉(zhuǎn)化統(tǒng)計(jì)。

分別對(duì)應(yīng)的是:緩存,健康檢查,負(fù)載均衡,監(jiān)視和管理,代理,路由規(guī)則,服務(wù)器相關(guān)性

健康檢查:主要是檢查各個(gè)服務(wù)器的IIS是否正常運(yùn)作。(這個(gè)也是第七層負(fù)載均衡的一個(gè)好處,能感知Web服務(wù)器是否正常運(yùn)作)

負(fù)載均衡:主要作用是設(shè)置各種分發(fā)規(guī)則。比如根據(jù)權(quán)重,最小響應(yīng)時(shí)間,最小請(qǐng)求量等

監(jiān)視和管理:主要讓你看到各個(gè)服務(wù)器的健康情況,請(qǐng)求量,失敗量,緩存命中率等。

服務(wù)器相關(guān)性:主要提供一種服務(wù)器和客戶(hù)端之間的粘性。簡(jiǎn)單理解就是,客戶(hù)端A的請(qǐng)求分配到服務(wù)器B處理之后,以后客戶(hù)端A的請(qǐng)求都分配到服務(wù)器B處理。(這樣設(shè)計(jì)理論會(huì)使用分配不均,當(dāng)然也有好處,比如可以使用本地session)

Client Affinity: 根據(jù)客戶(hù)端的cookies處理粘性

Host Name Affinity 根據(jù)Host name處理粘性

下面試一下壓力測(cè)試,用大微軟的VS2017進(jìn)行壓力測(cè)試,細(xì)節(jié)我就不講了,貼了一些結(jié)果吧。

在測(cè)試過(guò)的過(guò)程中,經(jīng)常現(xiàn)一個(gè)502.3 Timeout Errors的問(wèn)題,是ARR3.0的問(wèn)題,換回ARR2.0 版本之后,就正常了。

啟動(dòng)性能監(jiān)視器,統(tǒng)計(jì)每秒請(qǐng)求數(shù),也與壓力測(cè)試的結(jié)果吻合。每秒358次。

ARR測(cè)試到止結(jié)束,下班。

以上這篇windows第七層負(fù)載均衡_基于IIS的ARR負(fù)載均衡詳解就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,