客户要求应用能够支持负载均衡,本来写的服务就是无状态的,当然会支持负载均衡。对方要依据,那就出测试报告吧。
首先要搭建一个环境,用windows server 2003自带的NLB搭建一个软件实现的网络负载平衡环境,准备了两台服务器(实际上是两台PC)连到局域网中,每台服务器有一块网卡。最好两台PC登陆具有相同的管理员权限的用户(密码相同,在活动目录不用,第一个节点最好为域控制器,第二个节点连接添加)
server1:
IP:192.168.1.3
掩码:255.255.255.0
网关:192.168.1.254
server2:
IP:192.168.1.4
掩码:255.255.255.0
网关:192.168.1.254
在server1上通过NLB管理器建立集群:
虚拟IP:192.168.1.111
掩码:255.255.255.0
网关:192.168.1.254
群集操作模式:单播
协议:TCP
筛选模式:多个主机
相似性:无
负荷量:相等
向集群内添加主机:192.168.1.3(即本机server1),集群就算建好了。
在server2上的NLB管理器中连接上集群192.168.1.111,然后向集群内添加192.168.1.4(即本机server2),所有工作完成。
通过其他局域网中的PC ping 192.168.1.111、192.168.1.3、192.168.1.4均通畅,但server1与server2互ping对方专用ip均不通,这是正常的,单网卡单播模式下,集群内的主机互不通讯。
在这次配置过程中并不是一帆风顺,其中遇到了很多问题。最开始建立集群把本机加入集群后,本机就无法与外界任何设备通讯,外界的任何设备也无法和本机通讯,导致要么无法在本机的NLB管理器添加其他主机,要么其他主机连接不上集群。折磨了两天,试各种方法,什么单网卡单播、单网卡多播、双网卡单播、双网卡多播,排列组合了一遍都不行,找人在交换机上手动添加虚拟IP的ARP映射,方法用尽,效果全无。后来在人家依据提示下看了看事件日志,发现了一条错误信息,大概意思是:NLB所绑定的网络适配器不支持NDIS数据包……
遂买了两块3COM 3C905C 网卡换上,手到病除!
原来病因就是Realtek 3189网卡不支持NLB。
转载于:https://blog.51cto.com/clusters/123462