tomcat集群部署

tomcat集群部署

1 创建2个 tomcat
tomcat
2 将 tomcat 官网文档的配置示例复制到 server.xml文件中
官方文档

配置文档
3 修改 server.xml 文档中的参数配置
3.1 Cluster
   className表示tomcat集群时,之间相互传递信息使用那个类来实现信息之间的传递。channelSendOptions可以设置为2、4、8、10,每个数字代表一种方式。

  • 2= Channel.SEND_OPTIONS_USE_ACK(确认发送)
  • 4 = Channel.SEND_OPTIONS_SYNCHRONIZED_ACK(同步发送)
  • 8 = Channel.SEND_OFTIONS_ASYNCHRONOUS(异步发送)
  • 在异步模式下,可以通过加上确认发送(Acknowledge)来提高可靠性,此时channelSendOptions设为10

   信息传递方式一般为异步发送(数字8)
异步发送
3.2 Manager
     Manager 决定如何管理集群的 Session 信息。Tomcat 提供了两种 Manager:
BackupManager 和 DeltaManager。

  • BackupManager-集群下的所有 Session,将放到一个备份节点。集群下的所有节点都可以访问此备份节点
  • DeltaManager-集群下某一节点生成、改动的 Session,将复制到其他节点。DeltaManager 是 Tomcat 默认的集群 Manager,能满足—般的开发需求

   使用DeltaManager,每个节点部署的应用要一样;使用 BackupManager,每个节
点部署的应用可以不一样。

  • className-指定实现 org. apache.catalina.ha.session.BackupManager 接口的类,信息之间的管理
  • expireSessionsOnShutdown-设置为 true 时,一个节点关闭,将导致集群下的所有 Session 失效
  • notifyListenersOnReplication-集群下节点间的 Session 复制、删除操作,是否通知 session listeners
    Manager

3.3 Channel
     Channel:Tomcat节点之间进行通讯的工具。Channel包括5个组件。Membership、Receiver、Sender 、Transport、Interceptor。
Channel

3.2.1 Membership
   Membership:维护集群的可用节点列表。它可以检查到新增的节点,也可以检查到没有心跳的节点。

  • className-指定 Membership 使用的类 address-组播地址,一般用默认(本机)或者 IP 地址(远程)
  • port-组播端口
  • frequency-发送心跳(向组播地址发送IDP数据包)的时间间隔(单位:ms)。默认值为500
  • dropTime-Membership 在 dropTime (单位:ms)内未收到某一节点的心跳,则将该节点从可用节点列表册除。默认值为3000

   注:组播(Multicast) :一个发送者和多个接收者之间实现一对多的网络连接。一个发送者同时给多个接收者传输相同的数据,只需复制一份相同的数据包。它提高了数据传送效率,减少了骨干网络出现拥塞的可能性。相同组播地址、端口的 Tomcat 节点,可以组成集群下的子集群。
Membership

3.2.2 Receiver
   Receiver:接收器,负责接收消息。

  • className-指定Receiver使用的类(接收器),接收器分为两种:BioReceiver(阻塞式)、NioReceiver(非阻塞式)
  • address-接收消息的地址,如果Tomcat在同一台机器则address为auto,如果在不同机器,则地址为本机器的IP地址
  • port-接收消息的端口,如果不是同一台机器,port端口号可以相同,如果是同一台机器则port不同
  • autoBind-端口的变化区间,如果port为4000,autoBind为100,接收器将在4000-4099间取一个端口,进行监听
  • selectorTimeout-NioReceiver内轮询的超时时间maxThreads-线程池的最大线程数

Receiver

3.2.3 Sender 和 Transport
   Sender:发送器,负责发送消息。Sender内嵌了Transport组件,Transport真正负责发送消息。
   Transport分为两种:bio.PooledultiSender(阻塞式)、nio.PooledParallelSender(非阻塞式)。
Sender

3.2.4 Interceptor
   Interceptor : Cluster的拦截器。
   TcpFailureDetector-网络、系统比较繁忙时,Membership可能无法及时更新可用节点列表,此时TcpFailureDetector可以拦截到某个节点关闭的信息,并尝试通过TCP连接到此节点。以确保此节点真正关闭,从而更新集群可以用节点列表。
Interceptor

3.4 两个 tomcat 的各端口(port)不一致
tomcat01:
服务器端口:8005
tomcat01
接收器端口:5000
tomcat01
连接器端口:8080
tomcat01

tomcat02:
服务器端口:8006
tomcat02
接收器端口:5001
tomcat02
连接器端口:8081
tomcat02

3.5 修改第二个tomcat的startup.bat和catalina.bat
增加环境变量CATALINA_HOME2,值为新的tomcat的地址,把其中的CATALINA_HOME改为CATALINA_HOME2。这样一台计算机可以开启两个tomcat服务器。

4 修改web配置文件
添加标签

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值