Apache+tomcat的集群部署搭建

什么是集群
一个任务部署在多个服务器或设备上,字面意义这些设备和服务器不再是只有一个,是多个。和分布式不同,分布式是一个任务拆分为多个子任务在多个服务和设备上,但是集群是一个任务一个项目,部署在多个服务器上。
特点
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
在这里插入图片描述
b.规划并修改端口: 在tomcat的server.xml
server端口号 http协议端口 ajp协议端口号
tomcat-a: 1005 1080 1009
tomcat-b: 2005 2080 2009
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
端口可以任意配置,这里是为了方便记忆和规划。
c.配置引擎Engine: server.xml
增加jvmRoute

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

在这里插入图片描述
d.打开集群开关: server.xml
打开以下注释

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

在这里插入图片描述
tomcat配置完,tomcatb按相同的步骤配置正确。
2.配置apache
a.将mod_jk.so文件放在…\Apache24\modules\文件里面
在这里插入图片描述
b.在…\Apache24\conf\文件下创建workers.properties文件
在这里插入图片描述

#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文件)
在这里插入图片描述

#加载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文件
在这里插入图片描述

include conf/mod_jk.conf

3.整合
将项目放在tomcata和tomcatb的webapps文件夹下,然后启动apache24、tomcata、tomcatb。
在这里插入图片描述
运行截图
刷新三次页面看session值,会按workers.properties文件配置的lbfactor的比重分配。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
感谢颜群老师

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章