windows第七层负载均衡_基于IIS的ARR负载均衡详解
载均衡有很多种⽅法,有硬件负载均衡,软件负载均衡,还可以从域名解析下⼿。
不过,今天只讲软件负载均衡。
软件负载均衡⼀般分两种,从⽹络协议来讲(tcp/ip),主要集中在第四层和第七层进⾏负载均衡。
第四层就是基于IP进⾏负载均衡。后⾯还有⼀篇⽂章讲这个。
第七层就是应⽤层。⽐如各种的WEB服务器。今天就讲讲IIS的负载均衡。
第七层的Web负载均衡,很多web服务器都⽀持,⽐如IIS,Nginx,apache等。现在主要讲⼀下windosw下IIS如何使⽤负载均衡
IIS使⽤ARR反向代理,实现负载均衡
什么是正向代理?
代理服务器⼤家可能听说过,⽐如我们说的“科学上⽹”。就是使⽤代理服务器,请求经过代理服务器转到⽬的服务器。这是⼀个正向代理。⽤户知道⾃⼰使⽤代理,并且充许⽤户隐藏客户端⾃⾝。
什么是反向代理?
请求同样经过代理服务器转到⽬的服务器,⽬的服务器返回给代理服器,代理返回给客户端。不同的时候,客户并不知道,访问的是⼀个代理服务器。客户认为他在访问⽬的服务器。
两者的区别基本在于,正向代理是发⽣在客户端。反向代理是发⽣在服务端。
⾸先,我们先安装⼀个Web平台安装程序
打开web平台安装程序,搜索arr
写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);
}
}
返回结果
{"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":" //设置ARR
192.168.99.5 //代理服务器
192.168.99.6 //⽬的服务器
192.168.99.7 //⽬的服务器
192.168.99.8 //⽬的服务器
192.168.99.10 //⽬的服务器如何设置代理服务器
192.168.99.11 //⽬的服务器
192.168.99.12 //⽬的服务器
192.168.99.13 //⽬的服务器
⾸先给服务器安装net core 运⾏环境
DotNetCore.2.0.5-WindowsHosting 安装包内置SDK和WindowsHosting,直接安装这个,安装成功之后,要重启服务器才能⽣效。然后部署Web就可以访问了
选择⽆托管代码
好,部署成功之后,可以正常访问了
好,马上试⼀下部署ARR,是否能实现反向代理
添加⼀个⼊⼝站点,默认端80。
⾮常简单数据出来啦。理论就搭建成功了。
192.168.99.5 的站点,还有两个地⽅要注意设置
IIS程序池的队列长度。由于这是代理服务器很多请求都会经过这个站点,所以这个长度就设置长⼀点。默认值是1000。
IIS程序池的闲置超时。设置为0,将长期保持不回收状态。
转化服务器的⽹卡要⽬的服务器的⽹卡要好,这样能⽀撑更⼤的流量需求。
下⾯把⼀些细节介绍⼀下,然后做⼀下压⼒测试,就⼤功告成啦。
安装ARR完成之后,会出现两个
URL重写充许你定则重写规则,我没怎么⽤过,特么不嫌⿇烦。这就不细讲了。
Server Farms可以对你的集进⾏管理,健康检查,转化统计。
分别对应的是:缓存,健康检查,负载均衡,监视和管理,代理,路由规则,服务器相关性
健康检查:主要是检查各个服务器的IIS是否正常运作。(这个也是第七层负载均衡的⼀个好处,能感知Web服务器是否正常运作)负载均衡:主要作⽤是设置各种分发规则。⽐如根据权重,最⼩响应时间,最⼩请求量等
监视和管理:主要让你看到各个服务器的健康情况,请求量,失败量,缓存命中率等。
服务器相关性:主要提供⼀种服务器和客户端之间的粘性。简单理解就是,客户端A的请求分配到服务器B处理之后,以后客户端A的请求都分配到服务器B处理。(这样设计理论会使⽤分配不均,当然也有好处,⽐如可以使⽤本地session)
Client Affinity: 根据客户端的cookies处理粘性
Host Name Affinity 根据Host name处理粘性
下⾯试⼀下压⼒测试,⽤⼤微软的VS2017进⾏压⼒测试,细节我就不讲了,贴了⼀些结果吧。
在测试过的过程中,经常现⼀个502.3 Timeout Errors的问题,是ARR3.0的问题,换回ARR2.0 版本之后,就正常了。
启动性能监视器,统计每秒请求数,也与压⼒测试的结果吻合。每秒358次。
ARR测试到⽌结束,下班。
以上这篇windows第七层负载均衡_基于IIS的ARR负载均衡详解就是⼩编分享给⼤家的全部内容了,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论