tomcat集群部署
1 创建2个 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
3.3 Channel
Channel:Tomcat节点之间进行通讯的工具。Channel包括5个组件。Membership、Receiver、Sender 、Transport、Interceptor。
3.2.1 Membership
Membership:维护集群的可用节点列表。它可以检查到新增的节点,也可以检查到没有心跳的节点。
- className-指定 Membership 使用的类 address-组播地址,一般用默认(本机)或者 IP 地址(远程)
- port-组播端口
- frequency-发送心跳(向组播地址发送IDP数据包)的时间间隔(单位:ms)。默认值为500
- dropTime-Membership 在 dropTime (单位:ms)内未收到某一节点的心跳,则将该节点从可用节点列表册除。默认值为3000
注:组播(Multicast) :一个发送者和多个接收者之间实现一对多的网络连接。一个发送者同时给多个接收者传输相同的数据,只需复制一份相同的数据包。它提高了数据传送效率,减少了骨干网络出现拥塞的可能性。相同组播地址、端口的 Tomcat 节点,可以组成集群下的子集群。
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-线程池的最大线程数
3.2.3 Sender 和 Transport
Sender:发送器,负责发送消息。Sender内嵌了Transport组件,Transport真正负责发送消息。
Transport分为两种:bio.PooledultiSender(阻塞式)、nio.PooledParallelSender(非阻塞式)。
3.2.4 Interceptor
Interceptor : Cluster的拦截器。
TcpFailureDetector-网络、系统比较繁忙时,Membership可能无法及时更新可用节点列表,此时TcpFailureDetector可以拦截到某个节点关闭的信息,并尝试通过TCP连接到此节点。以确保此节点真正关闭,从而更新集群可以用节点列表。
3.4 两个 tomcat 的各端口(port)不一致
tomcat01:
服务器端口:8005
接收器端口:5000
连接器端口:8080
tomcat02:
服务器端口:8006
接收器端口:5001
连接器端口:8081
3.5 修改第二个tomcat的startup.bat和catalina.bat
增加环境变量CATALINA_HOME2,值为新的tomcat的地址,把其中的CATALINA_HOME改为CATALINA_HOME2。这样一台计算机可以开启两个tomcat服务器。
4 修改web配置文件
添加标签