相对于ARR来说,ARR算是应用级别的负载均衡方案,而NLB则是服务器级别的负载均衡方案。ARR只能做请求入口的消息分发服务,这样如果我们的消息分发服务器给挂掉,那么做再多的应用服务集群也都枉然。
ARR可以检测到你的iis应用是否可用,并对用户的请求实施负载均衡方案,根据我们配置的负载均衡算法,把用户的请求分发到应用服务器中。
但是,如果我们的ARR服务器down掉之后,我们的整个应用程序就无法使用,达不到24*7用不宕机的高可用要求。
下面配图为NLB的网路负载平衡方案
NLB可以最多可以配置32台服务器,这32台服务器通过拥有自己的独立ip之外,还共有一个虚拟IP,用户访问虚拟ip,nlb集群根据配置的负载算法来确定把用户的请求分发给那台应用服务器,如果一台NLB服务器down掉,则不会影响消息的分发可达到7*24小时不down机的高可用方案。
但是,NLB不能检测应用你的iis网站是否down掉,只能检测服务器是否down掉,这样一来,如果你的iis网站已经停止啦,nlb还给分发用户请求,那样麻烦可就来啦。
那么我们使用微软的技术怎么样做到网站的高可用呢?对,就是NLB+Application Request Route .
用户请求虚拟ip,接入nlb,nlb检测一台可用的服务器,吧请求发给arr,arr在检测可用的网站把用户请求给处理掉。
NLB的安装配置>>
打开windows服务器,进入服务器管理界面选择功能,然后添加功能。
安装后,打开网路负载平衡器 :
新建集群,首先你在你局域网中,找一个没有使用过的ip作为你集群的虚拟ip。
设置优先级,优先级数字越小,则代表越高。
添加集群ip也就是你事先检查过局域网中不存在的一个ip地址,他就是图中的虚拟ip。
设置需要集群负载的端口然后设置协议,分发形式。
然后再添加一台服务器到集群中。
来看下筛选模式的相关性。
无:加入A,B两台服务器,请求分发是这样的:ABABABABABAB.....
单一:加入A,B两台服务器,请求分发是这样的:AAAAAAAAAAAAAAAAA.....或者BBBBBBBBBBB....
网络:根据IP的Class C屏蔽来决定交由哪一部服务器来处理,也就是一部服务器只会处理来自某些网段C的请求。这种方式可确保使用多重Proxy的客户端能导向到相同的服务器。
单一主机:优先级别最高的一台可用服务器处理说有的用户请求。
禁用此端口范围:配置的端口范围不做转发,剩余的才做。
53服务器,访问虚拟ip176,获取到121服务器的内容。
模拟100个用户,发送1000个请求虚拟集群ip,黄色访问的是121服务器,白色是122服务器,关联性为无。