集群应用部署是一个很重要的应用场景,设想一下如果没有集群应用部署功能,每当我们发布应用时都要登陆每台机器对每个tomcat实例进行部署,这些工作量都是繁杂且重复的,而对于进步青年的程序员来说是不能容忍重复的事情发生的。于是需要一种功能可以在集群中某实例部署后,集群中的其他tomcat实例会自动完成部署。
集群部署主要分两部分内容。
- 第一部分是关于应用传输问题,主要是关于在tomcat中如何一个web应用传输到其它tomcat实例上;
- 第二部分是应用部署方式及应用更新方式,主要关于在tomcat中如何以集群同步方式部署一个web应用,以及集群实例在接收到新版本web应用时如何进行更新。
tomcat的集群是基于tribes网络框架的。
关于第一部分传输的问题,其主要是使用tribes进行数据传输,但它有一个地方需要考虑,常见的小数据都可以一次性直接发送,但web应用一般都是比较大,不可能一次性将其全部读到内存再直接写入到套接字中,所以需要分开多次传输。
部署的几个主要组件如图,tomcat集群中每个实例都会包含Cluster组件,它包含了专门用于集群部署的ClusterDeployer集群部署器,而且ClusterDeployer组