评论

收藏

[IIS] windows第四层负载均衡_基于NLB负载均衡详解

web服务器 web服务器 发布于:2021-10-01 17:16 | 阅读数:338 | 评论:0

上面有一篇文章说windows第七层负载均衡,这次讲讲第四层负载均衡
TCP/IP协议族,第七层是应用层,第四层是传输层。第四层负载均衡主要通过IP进行转化。
一些优秀的第四层负载均衡软件,速度可以接近硬件负载均衡的效率。当然,论速度还是人家硬件的快一点点,毕竟人家那价格摆在那里,一台F5,十几万,几十万,上百万不等。
第四层重与第七层相比:优秀就是速度快,能感知集群服务器的状态。缺点就是不能感知应用层软件的状态,比如IIS站点挂掉,但是如果服务器没有挂掉,转化流量用继续流入该服务器。
现在很多的第四层负载均衡软件,我是说LINUNX服务器下。如果你使用了Windows,我还是建议大伙吃人家的全家桶吧。性能肯定不能最大化。但是论稳定性,维护性还是全家桶好使,省心,省力。
如果,你购买了微软的正版系统,你还可以一个电话,让人家工程师帮你解决问题。前提是,你得用的是全家桶。
常见的第四层负载均衡软件:LVS,NLB,还有其它,一时想不起来了,懒得查了。
下面讲讲怎么安装NLB,当然我使用的是带GUI的操作系统,一般情况LINUX的是不装GUI的,但是window的黑框我还没有习惯,还不会用,就先用带GUI的吧
安装NBL功能
首先点服务管理器。
DSC0000.png

一直点“下一步”,直到勾上这个
DSC0001.png

安装成功。
每一台参与NLB的服务器,都需要安装。这跟ARR不一样,ARR只需要在转发服务器上面安装即可。
这里作为演示例子,就给三台服务器装上NLB吧
分别是
192.168.99.8
192.168.99.10
192.168.99.11
工作原理
所有请求会分发到每一台NLB服务器,然后NLB服务器根据算法处理自己那一份请求。
那么所有请求是怎么分发给每一台服务器昵,因为他们有一个公共的IP。也是就说,每台服务器有两个IP。
是的,每电脑可以有多个IP地址。
DSC0002.png

高级选项中,可以手动添加多个IP地址。
搭建集群
打开网络负载平衡管理器,新建集群
DSC0003.png

DSC0004.png

DSC0005.png

一直点“下一步”,直到完成。
192.168.99.10,192.168.99.20的服务器分别按下步骤操作。
DSC0006.png

DSC0007.png

DSC0008.png

DSC0009.png

一直点“下一步”,直到完成。
集群部署完毕。
DSC00010.png

我们查看IP,你发现,多一个公共IP,192.168.99.20 这个就是群集的IP。
DSC00011.png

搭建好之后,我们就走一波试试,试跑成功之后,再来讲讲一些细节配置吧
首先IIS要做一些设置,因为我们将使用公共IP进行访问,就是192.168.99.20
DSC00012.png

访问https://192.168.99.20/api/home/GetUserChat
DSC00013.png

成功返回。
压力测试
老规则,现在用VS2017进行压力测试,完事之后,讲点细节配置这事就算完成啦。
DSC00014.png

DSC00015.png

测试成功,但是问题也是相当明显
第一,数据的确广发给每个服务器,我们可以看,接收的数据大小都是一样的5.4Mbps
第二,发送的数据大小却完全不一样,这说明处理不一样。我们可以明显看到,192.168.99.10这台服务器,承担了大部分的工作。CPU上升到94%,发送数据包也达到1.5Mbps。
细节配置
很明显集群配置不合适。下面我们来讲讲细节细置
集群操作模式:
单播:所有节点服务器的MAC都会被改成集群MAC,发送数据的时候源MAC将变成集群MAC。缺点:交换机的MAC表无法绑定该MAC归属那个端口,所有数据包都进行广播,造流量负担。所有节点服务器具有相同MAC,无法相通讯。也就是说,集群节点,具有相同的IP和相同MAC地址。
多播:不会修改节点服务器的MAC,而是为专节点服务器添加多一个集群MAC,节点之间可以通过专用IP进行相互通信。
单网卡多播,双网卡单播。双网卡可以设置内网网卡成为专用IP,解决单播节点不能相互通信问题。
集群端口规则:
筛选模式:
多台主机:所有数据由多台服务器处理。
单个主机:所有数据由一台服务器处理,根据优先级选出服务器。
禁用此端口范围:禁止这个端口的数据,进行处理。
多台主机模式下,相关性:
无:由负载均衡器根根算法处理,基本上请求平均分配。
单一:同一个客户端的请求,归属原来的处理的服务器。
网络:根据IP的C类地址范围来决定分配。也就是同一网段的请求,会分配某一服务器上。
优先级:集群中所有转发根据端口规则进行处理,如果不符合端口规则,将统一由优先级最小的服务器进行处理。
为什么我们开始时候,192.168.99.10承受大量的工作,因为端口规则没有设置好,我们现在重新设置一下端口规则,再来测试一下吧。
之前默认设置
DSC00016.png

重新设置之后的配置
DSC00017.png

好,我们重新跑一趟压力
DSC00018.png

网络接受和发送比较平等。
DSC00019.png

每个服务器接受的请求数,大概相等。
DSC00020.png

每秒处理150个。与服务器数据相吻合。
负载均衡基本达到与预期效果一致。
NLB集群测试完毕。
以上这篇windows第四层负载均衡_基于NLB负载均衡详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持CodeAE代码之家

关注下面的标签,发现更多相似文章