欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Apache+tomcat的集群部署搭建

程序员文章站 2022-03-07 15:02:18
...

什么是集群
一个任务部署在多个服务器或设备上,字面意义这些设备和服务器不再是只有一个,是多个。和分布式不同,分布式是一个任务拆分为多个子任务在多个服务和设备上,但是集群是一个任务一个项目,部署在多个服务器上。
特点
1.负载均衡
能够使分担服务器压力,比如有两个tomcata、tomcatb,有三个请求(a,b,c)访问,可以将a给tomcata,b给tomcatb,c给tomcata。
2.失败迁移
一个服务器出问题拉可以把该次请求给其它服务器处理,比如上面的a访问tomcata访问不了,a就会给tomcatb处理。
分类
1.水平集群 :将服务器安装在 各个不同的计算机上 (失败迁移)
2.垂直集群 :将多个服务器,安装在同一个计算机上 (负载均衡)
上面的分类只是更明显,再同一台计算机上关闭一个服务器,也能达到失败迁移,但是如果是设备的问题就不能,所以实在硬件层面的分类。
搭建
特点:
apache :特点是处理静态资源(html 图片 js) .这里的apache是一个服务工具,不是 之前理解的 基金组织。
tomcat:特点 可以处理动态资源
apache+tomcat:动静分离
apache:请求的分流操作
思路:
用apache来控制请求分发到具体的服务器上去处理。
1.准备
a.下载apache
https://www.apachehaus.com/cgi-bin/download.plx?dli=QYGxmNRVVQ08ERjtWZVp1cKVlUGR1UwllWUJVe
b.下载tomcat
https://tomcat.apache.org/download-90.cgi
c.下载mod_jk.so
http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/windows/ 中的httpd.zip

2.配置tomcat(使用两个tomcat为例)
a.准备tomcat复制两份放在一个文件夹cluster ,命名tomcat-a、tomcat-b
Apache+tomcat的集群部署搭建
b.规划并修改端口: 在tomcat的server.xml
server端口号 http协议端口 ajp协议端口号
tomcat-a: 1005 1080 1009
tomcat-b: 2005 2080 2009
Apache+tomcat的集群部署搭建
Apache+tomcat的集群部署搭建
Apache+tomcat的集群部署搭建
端口可以任意配置,这里是为了方便记忆和规划。
c.配置引擎Engine: server.xml
增加jvmRoute

 <Engine name="Catalina" defaultHost="localhost" jvmRoute="tomcat-b">

Apache+tomcat的集群部署搭建
d.打开集群开关: server.xml
打开以**释

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

Apache+tomcat的集群部署搭建
tomcat配置完,tomcatb按相同的步骤配置正确。
2.配置apache
a.将mod_jk.so文件放在…\Apache24\modules\文件里面
Apache+tomcat的集群部署搭建
b.在…\Apache24\conf\文件下创建workers.properties文件
Apache+tomcat的集群部署搭建

#controller是控制器,后面的tomcat是服务器,名字随便起
worker.list=controller,tomcata,tomcatb

#port对应服务器的ajp端口号,host是主机名,tomcat里的一致,type类型ajp13(13版本),lbfactor负载比重,就是分配请求的比例
#tomcata
worker.tomcata.port=1009
worker.tomcata.host=localhost
worker.tomcata.type=ajp13
#负载均衡的比重
worker.tomcata.lbfactor=1

#tomcatb
worker.tomcatb.port=2009
worker.tomcatb.host=localhost
worker.tomcatb.type=ajp13
#负载均衡的比重
worker.tomcatb.lbfactor=2
#type类型负载均衡的简写lb,balanced_workers服务器有哪些,sticky_session是session的共享类型,false是广播true是固定将每一个用户的请求 分给特定的服务器
#controller
worker.controller.type=lb
worker.controller.balanced_workers=tomcata,tomcatb
worker.controller.sticky_session=false

c.在…\Apache24\conf\文件下创建mod_jk.conf文件(整合a、b中的mod_jk.so和workers.properties文件)
Apache+tomcat的集群部署搭建

#加载mod_jk.so  从apach的根目录开始


LoadModule jk_module modules/mod_jk.so

#加载workers.properties

JkWorkersFile conf/workers.properties

#分流
JkMount /* controller

d.在…\Apache24\confhttpd.xml文件中注册c中的mod_jk.conf文件
Apache+tomcat的集群部署搭建

include conf/mod_jk.conf

3.整合
将项目放在tomcata和tomcatb的webapps文件夹下,然后启动apache24、tomcata、tomcatb。
Apache+tomcat的集群部署搭建
运行截图
刷新三次页面看session值,会按workers.properties文件配置的lbfactor的比重分配。
Apache+tomcat的集群部署搭建
Apache+tomcat的集群部署搭建
Apache+tomcat的集群部署搭建
感谢颜群老师

相关标签: 部署