vlambda博客
学习文章列表

保姆级:详细说明双节点负载均衡与集群

This browser does not support music or audio playback. Please play it in Weixin or another browser.
之前发文介绍过这方面知识,网友反馈说太多看得眼花缭乱,现重新整理,细说原理及操作流程。
保姆级:详细说明双节点负载均衡与集群
1、集群(Cluster) :是一组独立的计算机系统构成一个松耦合的多处理器系统,它们之间通过网络实现进程间的通信。应用程序可以通过网络共享内存进行消息传送,实现分布式计算机。

 

       2、负载均衡(Load Balance):先得从集群讲起,集群就是一组连在一起的计算机,从外部看它是一个系统,各节点可以是不同的操作系统或不同硬件构成的计算机。如一个提供Web服务的集群,对外界来看是一个大Web服务器。不过集群的节点也可以单独提供服务。

 

       总体来说,在负载均衡的思路下,多台服务器为对等方式,每台服务器都具有同等的地位,可以单独对外提供服务而无需其他服务器的辅助。通过负载分担技术,将外部发送来的请求按一定规则分配到对称结构中的某一台服务器上,而接收到请求的服务器都独立回应客户机的请求


一、环境配置、软件说明              

平台

       Windows Server 2012 X64

Apache

       httpd-2.4.53-win64-vs16

TomCat

       apache-tomcat-9.0.37-windows-x64.zip

JDKTomCat需要)

       jdk-8u261-windows-x64.exe

Apache插件,用于连接tomcat

       mod_jk-1.2.48-win64-vs16


二、实现目地                      

       通过配置ApacheTomCat,做多个TomCat站点的负载均衡,其中某个TomCat站点崩溃异常,不会影响用户正常浏览体验。


三、实现原理                      

客户系统一般采用 Apache httpd 作为 web 服务器,即作为 Tomcat 的前端处理器,根据具体情况而定,有些情况下是不需要 Apache httpd 作为  web  服务器的,如系统展现没有静态页面那就不需要 Apache httpd ,那时可以直接使用 Tomcat 作为 web  服务器来使用。使用 Apache httpd 主要是它在处理静态页面方面的能力比 Tomcat 强多了。

保姆级:详细说明双节点负载均衡与集群


四、实验功能                    

       同机器部署一个Apache两个TomCat

       1、实现两个TomCat负载均衡;

       2、实现其中一个TomCat崩溃,服务器自动切换并且保持登录不掉线。


五、负载均衡部署                  


1、安装JDK双击jdk-8u112-windows-x64.exe 选择安装路径,点下一步直到完成,然后配置系统环境变量。详细配置变量步骤,请百度或看往期图文消息。

保姆级:详细说明双节点负载均衡与集群


2、apache、tomcat解压安装。

apache解压出来放到D盘, 解压 TomCat TomCat 复制两份,各软件安装路径如下:

D:\Apache24

D:\tomcat1

D:\tomcat2

D:\java\


3、安装mod_jk.so

mod_jk-1.2.48-win64-vs16.rar解压出来,复制mod_jk.so到D:\Apache24\modules文件夹下。

4、修改Apache配置文件httpd.conf  文件径径为  D:\Apache24\conf\httpd.conf 最后一行增加如下代码: 

#配置MOD.JK 集群要的配置文件             

Include conf/mod_jk.conf               

5、新建mod_jk.conf文件。
D:\Apache24\conf文件夹下, (和http.conf同目录下) 新建 mod_jk.conf 文件,内容如下:
#加载mod_jk Module#LoadModule jk_module modules/mod_jk-1.2.31-httpd-2.2.3.soLoadModule jk_module modules/mod_jk.so#指定 workers.properties文件路径JkWorkersFile conf/workers.properties#加载workers的请求处理分配文件JkMountFile conf/uriworkermap.properties
#指定jk的日志输出文件JkLogFile logs/mod_jk.logJkMount /*.jsp controller#指定日志级别JkLogLevel warn<Location /jkstatus>JKMount jk-statusRequire ip 127.0.0.1</Location>

6、新建workers.properties文件
D:\Apache24\conf文件夹下, (和http.conf同目录下) 新建  workers.properties 文件,内容如下:
#server 列表 tomcat1,tomcat2配置文件里的AJP端口要对应下方配置的portworker.list= controller ,tomcat1,tomcat2 #========tomcat1========worker.tomcat1.port=9019worker.tomcat1.host=192.168.10.100worker.tomcat1.type=ajp13worker.tomcat1.lbfactor=1#两个tomcat部署在本机,部署在不同服务器就改对应的IP地址#========tomcat2========worker.tomcat2.port=9020worker.tomcat2.host=192.168.10.100worker.tomcat2.type=ajp13worker.tomcat2.lbfactor=1#========controller,负载均衡控制器========worker.controller.type=lbworker.retries=3worker.controller.balance_workers=tomcat1,tomcat2#worker.controller.sticky_session=falseworker.controller.sticky_session=1worker.list=controller,jkstatus#worker.controller.sticky_session_force=1worker.jkstatus.type=status
7、新建uriworkermap.properties文件

D:\Apache24\conf文件夹下,(http.conf同目录下新建 uriworkermap.properties文件,内容如下:

#所有请求都由controller这个server处理/*=controller#所有包含jkstatus请求的都由status这个server处理/jkstatus=jkstatus#所有以.gif结尾的请求都不由controller这个server处理,以下几个都是一样的意思/*.*=controller 或 /*=controller#!/*.gif=controller#!/*.jpg=controller#!/*.png=controller#!/*.bmp=controller#!/*.css=controller#!/*.js=controller#!/*.htm=controller#!/*.html=controller#!/*.swf=controller
8、修改tomcat配置文件server.xml
如果你在不同电脑上安装 tomcat,tomcat 的安装数量为一个,可以不必修改 tomcat 配置文件。我这里是在同一台电脑上安装两个 tomcat ,所以需要更改 tomcat2 的设置,保证shutdown端口、http端口、ajp端口不能相同,否则同一台机打开有冲突无法启动。注意server.xml里的AJP端口,要和workers.properties文件配置的对应上。


需要修改的端口配置:

tomcat1的端口配置如下:<Server port="8005" shutdown="SHUTDOWN">
<Connector port="8080" protocol="HTTP/1.1"                connectionTimeout="20000" redirectPort="8443" />
<Connector protocol="AJP/1.3" address="192.168.10.100" port="9019"               redirectPort="8444" secretRequired="" URIEncoding="UTF8" />#注意 下方的名称jvmRoute='tomcat1',tomcat2的server.xml里配置成tomcat2<Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat1">#打开集群开关,默认注释掉了,把注释去掉就可以 #channelSendOptions="8" 属性值不加也行,默认值就是8 <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" channelSendOptions="8"/>------------------------------------- tomcat2 server.xml端口配置如下<Server port="8006" shutdown="SHUTDOWN">
<Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
<Connector protocol="AJP/1.3" address="192.168.10.100" port="9020"               redirectPort="8444" secretRequired="" URIEncoding="UTF8" />  <Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat2">#打开集群开关,默认注释掉了,把注释去掉就可以 #channelSendOptions="8" 属性值不加也行,默认值就是8 <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" channelSendOptions="8"/>



六、启动tomcat、apache验证测试部署         

1、先启动tomcat1、tomcat2 ,通过浏览器测试两个tomcat节点是否正常,浏览器测试都能正常显示页面,请继续下面操作。

2、启动apache, 

打开CMD ,运行命令终端,cd 到apache路径bin下执行http -k install 进到D:\Apache24\bin,双击打工ApacheMonitor,启动服务
保姆级:详细说明双节点负载均衡与集群

3、打开浏览器 输入 本机IP:端口形式进行测试,如192.168.10.100进行测试,由于apache httpd.conf 里面配置的端口为80,故直接输入IP地址,80端口可以不输入,如你们修改是其它端口,按实际的填写进行访问测试。关掉另外一个tomcat测试,业务还是能正常访问,恭喜你配置成功。
保姆级:详细说明双节点负载均衡与集群

七、注意事项                      

1、集群乱码处理
在http端口、ajp端口配置项后 加入 URIEncoding = "UTF8",如下方

 

<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" useBodyEncodingForURI="true" URIEncoding="UTF8" /><Connector protocol="AJP/1.3" address="192.168.10.100" port="9020"               redirectPort="8444" secretRequired="" URIEncoding="UTF8" />


2、启动tomcat报错 The AJP Connector is configured with secretRequired=“true” but the secret attribute is either null or “”. This combination is not valid. 解决 添加secretRequired=""即可,如下图。

保姆级:详细说明双节点负载均衡与集群

3、tomcat集群各节点通过建立tcp链接来完成Session的拷贝,拷贝有同步和异步两种模式。在同步模式下,对客户端的响应必须在Session拷贝到其他节点完成后进行;异步模式无需等待Session拷贝完成就可响应。异步模式更高效,但是同步模式可靠性更高。同步异步模式由channelSendOptions参数控制,默认值是8,为异步模式,4是同步模式。

故上方tomcat 配置文件里使用到下面这句,请注意这些细节。

<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"  channelSendOptions="8"/>

【原厂直销】上海表全面镂空防水机械男表SH3097
上海牌手表在线精品店
1680