标题:Windows 2003 Server 网络负载均衡 + Tomcat 5.0 集群
关键字:负载平衡 集群 Tomcat Session共享
作者:JRQ
链接:http://blog.csdn.net/jrq/archive/2006/08/26/1124685.aspx
摘要:在网络上摘抄的资料基础上整理而成。仅作备忘。
正文:
一、设置Windows 网络负载均衡(Load Balance)
以本地 Administrators 组成员身份登录计算机才能完成此过程。
1.在前端网络接口卡 (NIC) 上设置静态 IP。要这样做,请执行下列操作:
1.1.单击“开始”,指向“控制面板”,再单击“网络连接”。
1.2.用鼠标右键单击“前端 NIC”,再单击“属性”。
1.3.在“此连接使用下列选定的组件”区域中,选中“Internet 协议 (TCP/IP)”复选框。
1.4.单击“属性”。
1.5.选中“使用下列 IP 地址”。
1.5.1.在“IP 地址”框中,键入分配的前端静态 IP: 100.100.100.150。
1.5.2.如果需要,在“子网掩码”框中,键入分配的前端子网掩码:255.255.255.0。
1.5.3.如果需要,在“默认网关”框中,键入分配的前端网关:100.100.100.243。
1.6.选中“使用下列 DNS 服务器地址”。
1.7.在“首选 DNS 服务器”和“备用 DNS 服务器”框中,键入适当的 IP:100.100.100.6和100.100.100.7。
1.8.单击“高级”。
1.9.在“IP 设置”选项卡上的“IP 地址”节中,单击“添加”。
1.10.在“IP 地址”框中,键入虚拟 IP 地址:100.100.100.201。
1.11.在“子网掩码”框中,键入子网掩码:255.255.255.0。
1.12.单击“添加”,再单击“确定”。
注释:虚拟 IP 地址是负载平衡的IP 地址,它是指向服务器场的条目。
2.“LAN 连接属性”对话框上的“此连接使用下列选定的组件”区域中,选中“网络负载平衡”复选框。
3.单击“属性”。
4.在“群集参数”选项卡上,执行下列操作:
4.1.在“IP 地址”框中,键入群集 IP :100.100.100.201。
群集 IP 是虚拟 IP 地址,它是指向服务器场的条目。
需要将此 IP 地址映射到 DNS 项,以便可以在 Microsoft Internet Explorer 中键入群集名称,而不用键入 IP 地址。
4.2.在“子网掩码”框中,键入子网掩码:255.255.255.0。
将 IPCONFIG /ALL 报告的此 NIC 的子网掩码用于此 NIC。
4.3.在“完整 Internet 名”框中,键入 DNS 名称:ams.dtsjy.cn。
注释:如果使用了 Microsoft Windows Internet 名称服务 (WINS) 解析,请输入 WINS 名称,无需输入域扩展
例如,应输入 server_farm 而不是 server_farm.organization.com。
4.4.在“群集操作”节中,单击“单播”(默认选项)。
4.5.保留“允许远程控制”复选框为其默认设置(清除)。
5.在“主机参数”选项卡上,执行下列操作:
5.1.在“优先级”框中,对第一台前端 Web 和搜索服务器输入 1,对第二台前端 Web 和搜索服务器输入 2。
5.2.在“专用 IP 配置”区域的“IP 地址”框中,键入初始分配给此前端 NIC 的地址:100.100.100.150。
注释:要为前端 NIC 分配两个 IP 地址。
5.3.在“子网掩码”框中,键入初始分配给此前端 NIC 的子网掩码:255.255.255.0。
5.4.请勿更改“初始主机状态”节中的任何设置。
6.在“端口规则”选项卡上,单击“编辑”。
7.在“筛选模式”节中,单击“多个主机”。
8.在“关系”组中,单击“无”;负载量选择“相等”或输入负载的比例(百分比),可按照“二八”比例分配负载量。
9.单击“确定”,然后再次单击“确定”。
注释:如果显示一个对话框,提示您必须在 TCP/IP 组件中输入新地址,则说明您没有完成之前的所有步骤。
请单击“确定”,然后在继续操作之前执行下列步骤:
9.1.在前端 NIC 的“属性”对话框的“常规”选项卡上,单击“Internet 协议 (TCP/IP)”,再单击“属性”。
9.2.单击“高级”。
9.3.在“IP 设置”选项卡上的“IP 地址”节中,单击“添加”。
9.4.在“IP 地址”框中,键入虚拟 IP 地址:100.100.100.201。
9.5.在“子网掩码”框中,键入子网掩码: 255.255.255.0。
9.6.单击“添加”,再单击“确定”。
10.重新启动服务器。
11.在所有前端 Web 和搜索服务器上重复前面的步骤。请确保更改每一台服务器的优先级设置,使其唯一。
12.测试网络负载平衡:
12.1.打开命令提示符,然后从服务器场之外的客户端计算机 ping 服务器场的虚拟名称。
例如,如果 server_farm 是输入的完整 Internet 名,或者使用了 WINS,则应该键入 ping server_farm。
在本示例中 Server_farm 是虚拟服务器场名称。
12.2.请确认是否收到答复。
如果未收到答复,请使用服务器场的虚拟 IP 地址 ping 服务器场。虚拟 IP 地址是在前面的步骤中指定的群集 IP 地址。
如果未收到答复,请与负责 DNS/WINS、路由和静态 IP 支持的网络操作联系人联系。
12.3.键入 ping virtual_server_farm_name -t。
此命令将执行连续的 ping 操作。
12.4.在第一台前端 Web 和搜索服务器上执行下列操作:
12.4.0.在任务栏上,单击“开始”,指向“控制面板”,再指向“网络连接”,然后单击与网络负载平衡相关的 NIC 的“本地连接”。
12.4.1.在“常规”选项卡上,单击“禁用”。
12.5.在第二台前端 Web 和搜索服务器上执行下列操作:
12.5.0.在任务栏上,单击“开始”,指向“控制面板”,再指向“网络连接”,然后单击与网络负载平衡相关的 NIC 的“本地连接”。
12.5.1.在“常规”选项卡上,单击“禁用”。
12.6.在连续 ping 服务器场的虚拟名称的客户端计算机上,应该会出现一条消息,说明请求超时。
12.7.在第一台前端 Web 和搜索服务器的任务栏上,单击“开始”,指向“控制面板”,再指向“网络连接”。
然后用鼠标右键单击与网络负载平衡相关的 NIC 的“本地连接”,再单击“启用”。
12.8.在连续 ping 服务器场的虚拟名称的客户端计算机上,应该会在 10 秒钟内显示对 ping 的答复。
如果未显示答复,请确认网络负载平衡配置和网络配置是否正确。
12.9.在第一台前端 Web 和搜索服务器上执行下列操作:
12.9.0.在任务栏上,单击“开始”,指向“控制面板”,再指向“网络连接”,然后单击与网络负载平衡相关的 NIC 的“本地连接”。
12.9.1.在“常规”选项卡上,单击“禁用”。
12.10.在连续 ping 服务器场的虚拟名称的客户端计算机上,应该会出现一条消息,说明请求超时。
12.11.在第二台前端 Web 和搜索服务器的任务栏上,单击“开始”,指向“控制面板”,再指向“网络连接”。
然后用鼠标右键单击与网络负载平衡相关的 NIC 的“本地连接”,再单击“启用”。
12.12.在连续 ping 服务器场的虚拟名称的客户端计算机上,应该会在 10 秒钟内显示对 ping 的答复。
如果未显示答复,请确认网络负载平衡配置和网络配置是否正确。
12.13.在第二台前端 Web 和搜索服务器上执行下列操作:
12.13.0.在任务栏上,单击“开始”,指向“控制面板”,再指向“网络连接”,然后单击与网络负载平衡相关的 NIC 的“本地连接”。
12.13.1.在“常规”选项卡上,单击“禁用”。
12.14.在连续 ping 服务器场的虚拟名称的客户端计算机上,应该会出现一条消息,说明请求超时。
12.15.在第一台前端 Web 和搜索服务器的任务栏上,单击“开始”,指向“控制面板”,再指向“网络连接”。
然后用鼠标右键单击与网络负载平衡相关的 NIC 的“本地连接”,再单击“启用”。
12.16.在第二台前端 Web 和搜索服务器的任务栏上,单击“开始”,指向“控制面板”,再指向“网络连接”。
然后用鼠标右键单击与网络负载平衡相关的 NIC 的“本地连接”,再单击“启用”。
12.17.在连续 ping 服务器场的虚拟名称的客户端计算机上,按下 Ctrl+C 中断 ping 循环。
二、设置DNS
设置DNS服务,域名:ams.dtsjy.cn,解析为对应的虚拟 IP :100.100.100.201 。
三、设置服务心跳(HeartBaet)
设置IP和掩码即可。
Web服务心跳之一
IP:192.168.10.1
掩码: 255.255.255.0
Web服务心跳之二
IP:192.168.10.2
掩码: 255.255.255.0
四、设置 Tomcat 5.0 集群
打开 Tomcat 安装目录中的\conf\server.xml 文件,把 Server/Service/Engine/Host 下的 Cluster 结点前后的注释符删除并保存。
注意,在新安装的Tomcat5.0中可找到 Cluster 结点。如果已经在Tomcat的管理程序中设置过Tomcat的连接池,则在server.xml 文件中不会有 Cluster 结点,因为Cluster 结点默认是被注释的,在设置连接池的过程中,系统会自动删除server.xml 文件中的注释内容。
修改后的server.xml,大致成为如下的样子:
--------------
expireSessionsOnShutdown="false"
useDirtyFlag="true">
mcastAddr="228.0.0.4"
mcastPort="45564"
mcastFrequency="500"
mcastDropTime="3000"/>
tcpListenAddress="auto"
tcpListenPort="4001"
tcpSelectorTimeout="100"
tcpThreadCount="6"/>
replicationMode="pooled"/>
---------------
此时,mcastAddr的默认值是“228.0.0.4”,修改此值并保存。
对应不同的Web服务器,mcastAddr 为其心跳的IP地址。
Web服务之一: mcastAddr="192.168.10.1"
Web服务之二: mcastAddr="192.168.10.2"
其他内容保持不变。
在 Tomcat 5.0 中对 Cluster 的配置,将使Tomcat群集中能够实现Session的复制,即群集中各个Web服务节点的Session保持一致,实现Session共享。
注:对server.xml中的Cluster的一段文字的翻译: