负载均衡解决的问题


1、提高可用性


这里面的可用性主要是从WEB服务器,的角度来讲的,如果说我们只有一台Web服务器,而它遇到了某种未知的错误导致IIS无法启动,那么我们的网站就无法访问了,这就是一种比较低的可用性。那么利用负载均衡,放在我们Web服务器的前面,由它来收集所有的请求,然后转发给我们的Web服务器, 这时候我们就可以添加两台Web服务器,如果其中有一台坏了,至少还有另一台在工作,也不至于导致我们的网络无法访问。


2、提高可扩展性




可扩展性同样是指的Web服务器层面。从网站性能的角度来讲,好几个程序员花上好几天的时间做了一些优化所带来的效果有时候可能还没有直接加一根内存条来的快。内存加完了没什么影响,我们还可以换更好的CPU,CPU换完了,我们还可以用固态硬盘,甚至很多公司已经开始直接把数据放到内存中了(注:具体场景具体对待)。 如果这些都不可以再加了呢?那就再加机器吧,一台服务器可以处理1000个并发,那么两台理论上是2000了,所以这就有了我们的横向扩展。






配置方法


netcore 负载均衡 windows nlb负载均衡_windows


netcore 负载均衡 windows nlb负载均衡_IP_02


netcore 负载均衡 windows nlb负载均衡_netcore 负载均衡_03


netcore 负载均衡 windows nlb负载均衡_IP_04




netcore 负载均衡 windows nlb负载均衡_netcore 负载均衡_05

netcore 负载均衡 windows nlb负载均衡_服务器_06


netcore 负载均衡 windows nlb负载均衡_服务器_07


单播:在每个群集成员上,NLB 覆盖网络适配器上制造商提供的 MAC 地址。NLB 对所有成员都使用相同的单播 MAC 地址。这种模式的优点是它可以无缝地与大多数路由器和交换机协同工作。缺点是到达群集的流量会扩散到交换机虚拟 LAN (VLAN) 上的所有端口,并且主机之间的通信不能通过 NLB 绑定到的适配器,也即实体主机间不可以互相通信。若我们在NLB创建时选择单播的模式,在“群集IP配置”中的“网络地址”是以“02 - BF”开头,后面紧跟IP地址的十六进制表示,该网络地址与实际主机的MAC地址相同,后续加入的主机也将修改为此MAC地址。 
     多播:保留原厂 MAC 地址不变,但是向网络适配器中增加了一个第 2 层多播 MAC 地址。所有入站流量都会到达这个多播 MAC 地址。优点是这种方法可以通过在交换机的“内容可寻址存储器”(CAM) 表中创建静态项,从而使得入站流量仅到达群集中的主机。缺点是因为 CAM 项必须静态关联一组交换机端口,如果没有这些 CAM 项,入站流量仍然会扩散到交换机 VLAN 上的所有端口。还有一个缺点就是很多路由器不会自动将单播 IP 地址(群集的虚拟 IP 地址)与多播 MAC 地址关联起来。如果进行静态配置的话,一些路由器可以存在这种关联。若我们在NLB创建时选择多播的模式,在“群集IP配置”中的“网络地址”是以“03 -BF”开头,后面紧跟IP地址的十六进制表示。在选择多播模式时,后面还有个复选项“IGMP Multicast(IGMP多播)”,若复选此项,就像多播操作模式一样,NLB 保留原厂 MAC 地址不变,但是向网络适配器中增加了一个 IGMP 多播地址。此外,NLB 主机会发出这个组的 IGMP 加入消息。如果交换机探测到这些消息,它可以使用所需的多播地址来填充自己的 CAM 表,这样入站流量就不会扩散到 VLAN 上的所有端口。这是这种群集模式的主要优点。缺点是有一些交换机不支持 IGMP 探测。除此之外,路由器仍然支持单播 IP 地址到多播 MAC 地址的转换。在IGMP多播模式下,将采用“01 – 00 - 5E”开头的MAC地址。在多播的模式下,实体主机之间可以互相通信。


netcore 负载均衡 windows nlb负载均衡_netcore 负载均衡_08


netcore 负载均衡 windows nlb负载均衡_netcore 负载均衡_09


鼠标点击

“Edit

(编辑)

,进入

“Add/Edit 

Port 

Rule

(添加

/

编辑端口规则)

界面,对默认规则进行修

改设置。

 

       

Cluster IP address

(群集

IP

地址)

:此设置项是用来指定达到哪个群集

IP

的接受处理方式将按照以

下设置进行。因我们没有在

“C

luster 

IP 

Addresses

(群集

IP

地址)

添加其他的群集

IP

,在此我们将不进

行单独设置,选择

“All”

即可。

 

       

“Port range

(端口范围)

:默认情况下,

TCP

UDP

0 ~ 65536

端口都是可以

NLB

使用的,但为

NLB

的安全,我们只针对所提供的服务进行特定设置。在此我们提供

Web

站点服务,站点使用

80

端口

进行对外访问,所以我们将此端口范围修改为

“From 80 To 80”

 

       

“Protocols

(协议)

:选择使用哪种协议来提供服务,在此选择

TCP

协议。

 

       

“Filtering mode

(筛选模式)

:在此选项设置中,将选择

“Multiple host

(多主机)

以何种方式提供服

务。多主机之间进行负载平衡时,

“Affinity

(相似性)

可以选择

“None”

“Single”

 

“Class 

C”

三种。相似

性在此是设置在多主机负载平衡时,对客户端的

IP

做出的相应反应。选择

“Single

(单一)

,即表示第一

次用户端访问

VIP

分配到实际的物理主机时,以后所有的请求都由这台主机提供处理;若选择

“Class C”

式,则表示一个

C

类地址的客户端请求将全部由第一次处理请求的主机负责。

 

        

“Single 

Host

(单一主机)

:若选择此选项,该端口范围内的所有请求都将由一台主机来进行处理,

此选项将配合后面的主机优先级来进行主机判定。

 

          

“Disable this port range

(禁用此端口范围)

:一般这个选项会在端口例外中进行设置,也就是说,

当我们指定了一个比较大的范围端口时,其中有一个或几个端口我们不需要客户端用户访问到,这时我们

将利用这个规则来进行设定,防止用户访问此端口请求。


鼠标点击“Edit(编辑)”,进入“Add/Edit Port Rule(添加/编辑端口规则)”界面,对默认规则进行修改设置。 

       Cluster IP address(群集IP地址)”:此设置项是用来指定达到哪个群集IP的接受处理方式将按照以下设置进行。因我们没有在“Cluster IP Addresses(群集IP地址)”添加其他的群集IP,在此我们将不进行单独设置,选择“All”即可。 

       “Port range(端口范围)”:默认情况下,TCP或UDP的0 ~ 65536端口都是可以NLB使用的,但为了NLB的安全,我们只针对所提供的服务进行特定设置。在此我们提供Web站点服务,站点使用80端口进行对外访问,所以我们将此端口范围修改为“From 80 To 80”。 

       “Protocols(协议)”:选择使用哪种协议来提供服务,在此选择TCP协议。 

       “Filtering mode(筛选模式)”:在此选项设置中,将选择“Multiple host(多主机)”以何种方式提供服务。多主机之间进行负载平衡时,“Affinity(相似性)”可以选择“None”、“Single”、 “Class C”三种。相似性在此是设置在多主机负载平衡时,对客户端的IP做出的相应反应。选择“Single(单一)”,即表示第一次用户端访问VIP分配到实际的物理主机时,以后所有的请求都由这台主机提供处理;若选择“Class C”模式,则表示一个C类地址的客户端请求将全部由第一次处理请求的主机负责。 

        “Single Host(单一主机)”:若选择此选项,该端口范围内的所有请求都将由一台主机来进行处理,此选项将配合后面的主机优先级来进行主机判定。 

          “Disable this port range(禁用此端口范围)”:一般这个选项会在端口例外中进行设置,也就是说,当我们指定了一个比较大的范围端口时,其中有一个或几个端口我们不需要客户端用户访问到,这时我们将利用这个规则来进行设定,防止用户访问此端口请求。 



netcore 负载均衡 windows nlb负载均衡_服务器_10


netcore 负载均衡 windows nlb负载均衡_NLB_11