JavaWeb开发技术学习笔记(十四)——集群

集群:
apache、 nginx

tomcat:理论上 单节点tomcat能够稳定的 处理请求并发量200-300;

负载均衡

失败迁移

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

搭建集群:
apache :特点是处理静态资源(html 图片 js) .这里的apache是一个服务工具,不是 之前理解的 基金组织。

tomcat:特点 可以处理动态资源
apache+tomcat:动静分离

apache:请求的分流操作

下载apache服务器工具
https://www.apachehaus.com/cgi-bin/download.plx?dli=QYGxmNRVVQ08ERjtWZVp1cKVlUGR1UwllWUJVe

配置:
conf/http.conf
Define SRVROOT “D:\dev\cluster\Apache24”
看一看将apache配置成windows服务:
管理员身份打开cmd,通过命令注册apache服务

注册成功后,启动,localhost 查看是否成功访问

准备tomcat:复制两份,改端口
i.规划并修改端口: server.xml
server端口号 http协议端口 ajp协议端口号
tomcat-a: 1005 1080 1009
tomcat-b: 2005 2080 2009

ii.配置引擎Engine : server.xml
增加jvmRoute

iii.打開集群开关 server.xml
打开以下注释

tomcat集群配置搞定,apache启动

->结合apache+tomcat :mod_jk.so

http://archive.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/windows/ 中的httpd.zip

配置mod_jk.so:
a.存放位置,\Apache24\modules\mod_jk.so
b.配置\Apache24\conf\workers.properties

分布式session策略:

1.sticky:固定将每一个用户的请求 分给特定的服务器,后期的请求不会分给其他服务器

2.session广播(自动同步session): 自动同步session,
弊端:如果服务器太多,可能造成广播风暴(将一个服务器的session,需要同步到其他所有的服务器中)
3.集中管理方式(推荐):将各个服务器的session集群存储到一个 数据库中

c.配置\Apache24\conf\mod_jk.conf (用于加载mod_jk.so和workers.properties)

其中JkMount /* controller,表示拦截一切请求。也可以之拦截jsp: /*.jsp

mod_jk.so,workers.properties ->mod_jk.conf -> apache程序会自动加载httpd.conf

配置httpd.conf: 在apache启动时 自动加载mod_jk.conf:
追加include conf/mod_jk.conf

集群:应用阶段、部署实施

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

依次启动apache、tomcata、tomcatb

原因:
apache之前已经成功运行,但是重启时 失败

分析思路:
成功运行的时机:第一把apche下载完后

​ 失败时机: apache+tomcat整合

得出结论: 整合

测试:失败迁移 负载均衡 session共享

解决bug

细节:
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

猜你喜欢

转载自blog.csdn.net/MACRosshaha/article/details/105871294