集群

集群:
    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=gWIZkcUtWQ10kentWZHBHUKVlUGR1UwpnTqZVb
配置:
conf/httpd.conf
    Define SRVROOT "E:\cluster\Apache24"
可以将apache配置成windows服务:
    管理员身份打开cmd,通过命令注册apache服务

"E:\cluster\Apache24\bin\httpd.exe"    -k install -n apache24
如果在注册apache服务时,提示“丢失VCRUNTIME140.DLL”,则需要下载并安装vc_redist.x64.exe。下载地址:
https://www.microsoft.com/en-US/download/details.aspx?id=48145

删除服务
sc delete 服务名(apache24)

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

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

ii.配置引擎Engine:server.xml
    

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.存放位置:E:\cluster\Apache24\modules\mod_jk.so
    b.配置:E:\cluster\Apache24\conf\workers.properties


分布式session策略:
    1、sticky:固定将每一个用户的请求分给特定的服务器,后期的请求不会分给其他服务器
    2、session广播:自动同步session,
        弊端:如果服务器太多,可能造成广播风暴(将一个服务器的session,需要同步到其他所有的服务器中)
    3、集中管理方式(推荐):将各个服务器的session集群存储到一个数据库中

    c.配置E:\cluster\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之前已经成功运行,但是重启时失败

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

    失败时机: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
 

你可能感兴趣的:(集群)