tomcat-集群

Posted huxl1

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tomcat-集群相关的知识,希望对你有一定的参考价值。

1 tomcat有一个内部组件cluster,可以放在host里或engine

2 集群每个节点都需要安装,时间同步,节点基于多播方式基于228.0.0.4的地址通信,多播的端口45564,(只要监听这一端口上的是)

3,主机上监听在端口上用来接收多播信息(4000-4100)

4定义两个interceptor当tomcat发生错误如何能探测出来

会话管理器:种类

      1 会话在缓存中随后将其保存在磁盘中

      2 每一会话本地保存还要多播传给其他几点

      3 种可以进行会话备用

      4 讲会话放在外面会话服务器上

1) 配置启用集群,将下列配置放置于<engine>或<host>中;server.xml中进行配置

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

      channelSendOptions="8">           

<Manager className="org.apache.catalina.ha.session.DeltaManager"  用哪种管理器

      expireSessionsOnShutdown="false"     是否在关机后会话过期

      notifyListenersOnReplication="true"/>  复制其他节点时通知监听器

<Channel className="org.apache.catalina.tribes.group.GroupChannel"> 定义信道的

<Membership className="org.apache.catalina.tribes.membership.McastService"

      address="228.0.0.4"

      port="45564"

      frequency="500"      没多久发一次心跳探测毫秒

      dropTime="3000"/>   这么久收不到表示宕机了

<Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver" 接收器

       address="auto"

      port="4000"

      autoBind="100"   没多久自动绑定一次

      selectorTimeout="5000"   超时时间

      maxThreads="6"/> 最大并发数

<Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter"> 发送器

<Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>

</Sender>

<Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>

探测传输中是否发生错误

<Interceptor           className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>

</Channel>

<Valve className="org.apache.catalina.ha.tcp.ReplicationValve" 过滤器

      filter=""/>

<Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/> 

<Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer" 部署器实现自动部署一般不用

  tempDir="/tmp/war-temp/"

      deployDir="/tmp/war-deploy/"

      watchDir="/tmp/war-listen/"

      watchEnabled="false"/>

监听器,

<ClusterListener className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/>

 

<ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>

</Cluster>

对之前test做测试

cp  web.xml   /var/lib/tomcat/webapps/test/WEB-INF/

vim   web.xml

编辑WEB-INF/web.xml,添加<distributable/>;

重启tomcat,systemctl   start tomcat.service  此时报有语法错误

注意:CentOS 7上的tomcat自带的文档中的配置示例有语法错误;

1  是因为server.xml 中clusterListner 最后没有加

<ClusterListener className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/>

<ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>

2 绑定的地址为auto时,会自动解析本地主机名,并解析得出的IP地址作为使用的地址;将address= auto 改为自己的地址也有可能是hosts文件的解析

3 报没有支持多播机制,multicast     原因可能是因为地址的临时配置,

重启服务

访问:www.ilinux.com/test

 

以上是关于tomcat-集群的主要内容,如果未能解决你的问题,请参考以下文章

Nginx+Tomcat搭建集群环境

关于Tomcat集群中,图片文件等同步的问题

Tomcat集群搭建超详细(apache+mod_jk+tomcat)

75篇关于Tomcat源码和机制的文章

干货Tomcat集群架构介绍

Tomcat集群session复制,httpd/nginx反代Tomcat集群