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

上面有一篇文章说windows第七层负载均衡,这次讲讲第四层负载均衡

TCP/IP协议族,第七层是应用层,第四层是传输层。第四层负载均衡主要通过IP进行转化。

一些优秀的第四层负载均衡软件,速度可以接近硬件负载均衡的效率。当然,论速度还是人家硬件的快一点点,毕竟人家那价格摆在那里,一台F5,十几万,几十万,上百万不等。

第四层重与第七层相比:优秀就是速度快,能感知集群服务器的状态。缺点就是不能感知应用层软件的状态,比如IIS站点挂掉,但是如果服务器没有挂掉,转化流量用继续流入该服务器。

现在很多的第四层负载均衡软件,我是说LINUNX服务器下。如果你使用了Windows,我还是建议大伙吃人家的全家桶吧。性能肯定不能最大化。但是论稳定性,维护性还是全家桶好使,省心,省力。

如果,你购买了微软的正版系统,你还可以一个电话,让人家工程师帮你解决问题。前提是,你得用的是全家桶。

常见的第四层负载均衡软件:LVS,NLB,还有其它,一时想不起来了,懒得查了。

下面讲讲怎么安装NLB,当然我使用的是带GUI的操作系统,一般情况LINUX的是不装GUI的,但是window的黑框我还没有习惯,还不会用,就先用带GUI的吧

安装NBL功能

首先点服务管理器。

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

安装成功。

每一台参与NLB的服务器,都需要安装。这跟ARR不一样,ARR只需要在转发服务器上面安装即可。

这里作为演示例子,就给三台服务器装上NLB吧

分别是

192.168.99.8
192.168.99.10
192.168.99.11

工作原理

所有请求会分发到每一台NLB服务器,然后NLB服务器根据算法处理自己那一份请求。

那么所有请求是怎么分发给每一台服务器昵,因为他们有一个公共的IP。也是就说,每台服务器有两个IP。

是的,每电脑可以有多个IP地址。

高级选项中,可以手动添加多个IP地址。

搭建集群

打开网络负载平衡管理器,新建集群

一直点“下一步”,直到完成。

192.168.99.10,192.168.99.20的服务器分别按下步骤操作。

一直点“下一步”,直到完成。

集群部署完毕。

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

搭建好之后,我们就走一波试试,试跑成功之后,再来讲讲一些细节配置吧

首先IIS要做一些设置,因为我们将使用公共IP进行访问,就是192.168.99.20

访问http://192.168.99.20/api/home/GetUserChat

成功返回。

压力测试

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

测试成功,但是问题也是相当明显

第一,数据的确广发给每个服务器,我们可以看,接收的数据大小都是一样的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承受大量的工作,因为端口规则没有设置好,我们现在重新设置一下端口规则,再来测试一下吧。

之前默认设置

重新设置之后的配置

好,我们重新跑一趟压力

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

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

每秒处理150个。与服务器数据相吻合。

负载均衡基本达到与预期效果一致。

NLB集群测试完毕。

以上这篇windows第四层负载均衡_基于NLB负载均衡详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

您可能感兴趣的文章:

  • Windows Server 2008 R2 负载平衡安装配置入门篇
  • windows第七层负载均衡_基于IIS的ARR负载均衡详解
(0)

相关推荐

  • windows第七层负载均衡_基于IIS的ARR负载均衡详解

    载均衡有很多种方法,有硬件负载均衡,软件负载均衡,还可以从域名解析下手. 不过,今天只讲软件负载均衡. 软件负载均衡一般分两种,从网络协议来讲(tcp/ip),主要集中在第四层和第七层进行负载均衡. 第四层就是基于IP进行负载均衡.后面还有一篇文章讲这个. 第七层就是应用层.比如各种的WEB服务器.今天就讲讲IIS的负载均衡. 第七层的Web负载均衡,很多web服务器都支持,比如IIS,Nginx,apache等.现在主要讲一下windosw下IIS如何使用负载均衡 IIS使用ARR反向代理,实

  • Windows Server 2008 R2 负载平衡安装配置入门篇

    一.简单介绍负载均衡 负载均衡也称负载共享,它是指负载均衡是指通过对系统负载情况进行动态调整,把负荷分摊到多个操作节点上执行,以减少系统中因各个节点负载不均衡所造成的影响,从而提高系统的工作效率. 在常用的大型服务器系统当中都存在着负载均衡组件,常用的像微软的网络负载平衡NLB.甲骨文的Oracle RAC.思科的负载均衡(SLB),Apach+Tomcat 负载均衡,它们能从硬件或软件不同方面实现系统各节点的负载平衡,有效地提高大型服务器系统的运行效率,从而提升系统的吞吐量.本篇文章以微软的网

  • windows第四层负载均衡_基于NLB负载均衡详解

    上面有一篇文章说windows第七层负载均衡,这次讲讲第四层负载均衡 TCP/IP协议族,第七层是应用层,第四层是传输层.第四层负载均衡主要通过IP进行转化. 一些优秀的第四层负载均衡软件,速度可以接近硬件负载均衡的效率.当然,论速度还是人家硬件的快一点点,毕竟人家那价格摆在那里,一台F5,十几万,几十万,上百万不等. 第四层重与第七层相比:优秀就是速度快,能感知集群服务器的状态.缺点就是不能感知应用层软件的状态,比如IIS站点挂掉,但是如果服务器没有挂掉,转化流量用继续流入该服务器. 现在很多

  • Nginx+Tomcat负载均衡集群安装配置案例详解

    目录 前言 一.Nginx+Tomcat 二.配置Nginx服务器 三.部署Tomcat应用服务器 总结 前言 介绍Tomcat及Nginx+Tomcat负载均衡集群,Tomcat的应用场景,然后重点介绍Tomcat的安装配置.Nginx+Tomcat负载均衡集案列是应用于生产环境的一套可靠的Web站点解决方案. 一.Nginx+Tomcat 通常情况下,一个Tomcat站点由于可能出现单点故障及无法应付过多客户复杂多样的请求等问题,不能单独应用于生产环境下,所以我们需要一套更可靠的解决方案来完

  • java开发Dubbo负载均衡与集群容错示例详解

    目录 负载均衡与集群容错 Invoker 服务目录 RegistryDirectory 获取Invoker列表 监听注册中心 刷新Invoker列表 StaticDirectory 服务路由 Cluster FailoverClusterInvoker FailfastClusterInvoker FailsafeClusterInvoker FailbackClusterInvoker ForkingClusterInvoker BroadcastClusterInvoker Abstract

  • Python进阶_关于命名空间与作用域(详解)

    写在前面 如非特别说明,下文均基于Python3 命名空间与作用于跟名字的绑定相关性很大,可以结合另一篇介绍Python名字.对象及其绑定的文章. 1. 命名空间 1.1 什么是命名空间 Namespace命名空间,也称名字空间,是从名字到对象的映射.Python中,大部分的命名空间都是由字典来实现的,但是本文的不会涉及命名空间的实现.命名空间的一大作用是避免名字冲突: def fun1(): i = 1 def fun2(): i = 2 同一个模块中的两个函数中,两个同名名字i之间绝没有任何

  • 基于php编程规范(详解)

    今天写这个是为了 提醒自己 编程过程 不仅要有逻辑 思想 还有要规范 代码 这样可读性 1.PHP 编程规范与编码习惯最主要的有以下几点: 1 文件说明 2 function 函数体说明 3 代码缩进 4 if省略 5 变量规范 6 命名规范 7 十行一注释 8 注释风格 9 开放关闭原则 2.文件说明 个人代码 -规范如下: <? /* +---------------------------------------------------------------------- + Title

  • Windows系统中搭建Go语言开发环境图文详解

    目录 1.Go语言简介 2.安装Git 3.Go 工具链(编译器)安装 3.1.环境变量GOROOT 3.2.环境变量GOPATH 3.3.Go常用命令 4.包管理 4.1.go module 4.2.gopm 5.编写Go语言代码的IDE或编辑工具 5.1.基于VSCode的Go开发环境 5.1.1.安装VSCode 5.1.2.安装插件 5.1.3.常用配置 5.2.GoLand 5.3.Vim 5.4.其他Go代码编写工具 6.Go语言学习资料分享 本文详细讲述如何在 Windows 系统

  • windows server2016安装MySQL5.7.19解压缩版教程详解

    记录了MySQL 5.7.19 winx64解压缩版安装教程,具体内容如下 系统环境:Win7 x64 软件准备:mysql 5.7.19 winx64 下载网址:https://dev.mysql.com/downloads/mysql/ 配置安装流程 具体安装如下: 1.把 mysql-5.7.19-winx64.zip 压缩文件解压到 C:\MySQL\ 目录下: 2.在 C:\MySQL\ 目录下新建 my.ini 配置文件: 3.用文本编辑器或其他编辑器打开 my.ini 文件,把以下

  • 基于hashlib模块--加密(详解)

    用于加密相关的操作,3.x里代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法 import hashlib m = hashlib.md5() m.update(b"hello") print(m.hexdigest()) m.update(b"It's me") print(m.hexdigest()) m.update(b"It's been a long time sin

  • 基于js 本地存储(详解)

    在客户端运行的JS是不能操作用户电脑磁盘中的文件的(保护客户端运行的安全) 1.JS中的本地存储: 使用JS向浏览器的某一个位置中存储一些内容,浏览器即使关闭了,存储的信息也不会销毁,当在重新打开浏览器的时候我们依然可以获取到上一次存储的信息 本地存储的方案: 传统: cookie:把信息存储到客户端的浏览器中(但是项目服务器端也是可以获取COOKIE的) session:把信息存储到服务器上的(服务器存储) HTML5:webStorage localStorage:永久存储在客户端的本地 s

随机推荐