apache+tomcat实现集群

集群:

可以做集群的工具:apache、	nginx

为何要集群 : tomcat:理论上 单节点tomcat能够稳定的 处理请求并发量200-300;
集群解决的问题 :实现负载均衡 和 失败迁移

服务端集群:
a.水平集群 :将服务器安装在 各个不同的计算机上 (失败迁移)
b.垂直集群 :将多个服务器,安装在同一个计算机上 (负载均衡)

搭建集群:

工具:Apache,两个Tomcat(可以更多)
两个服务器的区别 : apache+tomcat:动静分离
	apache :特点是处理静态资源(html 图片 js) .这里的apache是一个服务工具,不是 之前理解的 基金组织。
	tomcat:特点 可以处理动态资源

apache:请求的分流操作 Apache下载

Apache配置:修改配置 + 注册服务

修改配置

在Apache中 的  conf/http.conf  文件中
	Define SRVROOT "Apache根目录"
	例如:Define SRVROOT "D:\cluster\Apache24"

注册服务

将apache配置成windows服务,管理员身份打开cmd,通过命令注册apache服务
命令 : "路径" -k install -n 服务名
例如 : "D:\dev\cluster\Apache24\bin\httpd.exe" -k install -n apache24

删除服务
sc delete 服务名

注意:
如果在注册apache服务时,提示“丢失VCRUNTIME140.DLL”,则需要下载并安装vc_redist.x64.exe。下载地址https://www.microsoft.com/en-US/download/details.aspx?id=48145
vmvare  端口为   443   可能造成对口占用   服务不能启动 

检查

注册成功后,启动,localhost 查看是否成功访问    
直接访问 localhost 默认端口是80

整合apache+tomcat

1、规划+修改端口

规划:可以自定义,这只是我个人的

Tomcat服务器server端口http协议端口ajp协议端口
tomcat-a100510801009
tomcat-b200520802009
以下配置-位置均在 \apache-tomcat-8a\conf\server.xml中

server端口:<Server port=“1005” shutdown=“SHUTDOWN”>
http协议端口:<Connector URIEncoding=“utf-8” connectionTimeout=“20000” port=“1080” protocol=“HTTP/1.1” redirectPort=“8443”/>
ajp协议端口: <Connector port=“1009” protocol=“AJP/1.3” redirectPort=“8443”/>

2、配置Tomcat引擎

<Engine defaultHost=“localhost” name=“Catalina” jvmRoute=“tomacat-a”>
只需要添加 jvmRoute=“tomacat-a”
每个 jvmRoute 的值不能一样

3、打开集群开关

打开以下注释
<Cluster className=“org.apache.catalina.ha.tcp.SimpleTcpCluster”/>

Tomcat配置完成

4 配置Apache参数

两者结合需要 mod_jk.so 文件
下载 mod_jk.so 中的httpd.zip中

i、存放位置(建议) \Apache24\modules\mod_jk.so
ii、配置\Apache24\conf\workers.properties
worker.list=controller,tomcata,tomcatb 
#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
#controller
worker.controller.type=lb
worker.controller.balanced_workers=tomcata,tomcatb
worker.controller.sticky_session=false

在这里插入图片描述
分布式session策略:

	1.sticky:固定将每一个用户的请求 分给特定的服务器,后期的请求不会分给其他服务器
	2.session广播(自动同步session): 自动同步session,
		弊端:如果服务器太多,可能造成广播风暴(将一个服务器的session,需要同步到其他所有的服务器中)
	3.集中管理方式(推荐):将各个服务器的session集群存储到一个 数据库中
iii、配置\Apache24\conf\mod_jk.conf (用于加载mod_jk.so和workers.properties)
#加载mod_jk.so
LoadModule jk_module modules/mod_jk.so
#加载workers.properties
JkWorkersFile conf/workers.properties
#需要拦截的类容  /* 表示所有
JkMount /* controller
Apache加载流程
mod_jk.so,workers.properties ->mod_jk.conf  -> apache程序会自动加载httpd.conf
集群 应用阶段 :部署实施

依次启动apache、tomcata、tomcatb
测试:失败迁移 负载均衡 session共享

注意:

CATALINA_HOME会使 启动tomcat时  自动开启CATALINA_HOME指定的tomcat。
	而集群中 需要开启多个不同的tomcat,因此 在单机环境下,需要删除CATALINA_HOME。
依次启动apache、tomcata、tomcatb

细节
apache:
worker.list=controller,tomcata,tomcatb

tomcat配置:(只需要保证 所有tomcat的jvmRoute不能重名即可 ,可以和apache中的命名不一致)
jvmRoute="tomcat-a"
jvmRoute="tomcat-b"

流程:apache->workers.properties中配置的 ip:端口 找到具体的tomcat服务(与tomcat中的jvmRoute="tomcat-a"的没有关系)

tomcat服务的目录名:(任意)
tomcata
tomcatb
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值