Tomcat的部署方式有很多种,以下列举:
第一种,是本地打包为war,直接通过winscp上传到远程服务器目录上。
第二种,通过git clone的方式打包war部署。
第三种,需要设置tomcat的权限,直接通过输入IP+端口,进入tomcat首页,输入对应的用户名和密码,直接通过文件上传的方式完成部署。
综合三种,本质就是通过war来实现的。哪怕是非maven项目,动态web项目本质上也是一样的,也可以打成war包,当然不打成war也行。
回到一个问题上面来,有人说一个tomcat部署一个web应用,浪费资源了,还有人说,一个tomcat部署多个web应用太占资源了。
下面我参考一个朋友的链接给出对应的方案,大家自行根据需求而定。
参考文章链接如:https://mp.weixin.qq.com/s/rEBqi0rSeolBYDHUBAMPgQ
多个web应用部署到一个Tomcat上的优劣?
优势 :
安装管理、监控都方便,只需要安装一个 Tomcat,所有的操作都指向同一个实例即可。
劣势:
多个应用共用 Tomcat 的内存,容易互相影响。如果有一个应用占用堆太多,频繁的 GC 也会使其他应用跟着暂停。
每个Tomcat部署一个web应用的优劣?
优势 :
多个应用之间 Tomcat 的内存互相隔离,互相之间无影响。一个应用crash,频繁 GC,都只影响其自己,影响面缩小。
劣势:
相比一个实例,安装管理、监控都较繁琐一些。可以通过安装一个实例,设置不同的CATALINA_HOME来简化一些操作。
其实上述的优劣对比,综合起来,就是开发与运维从各自的角度分析得出的。
归纳如下:
运维认为一个 Tomcat 部署多个应用,原因如下:
省内存 (每个 Tomcat 都会有内存的 footprint,即使没有应用部署运行)
省去额外的文件系统 (logs, tomcat installation, temp directory)
省去 nagios 监控配置
省去不少独立的端口 (security considerations)
省去每个都打安全补丁
开发人员认为应该一个 Tomcat里只部署一个应用,理由如下:
多个应用部署在一起,启动时间太长
多个应用部署在一起,一个出了问题,会影响到其他的应用 (OOM, 线程数打满 等等)
如果你需要在线上进行应用heap, 线程的dump, cpu使用等诊断分析,独立部署则不会影响到其他应用
问:聪哥哥怎么看?
答:视情况而定,根据公司在开发和运维方面投入的资源而定,如果是运维方面,投入比重比较小,建议还是尽可能的最大程度挖掘服务器(也就是能用空间,尽可能充分利用,要有宁可错杀一万,绝不放掉一个的勇气和智慧)。当然了,就稳定性的角度看,还是能一个tomcat对应一个web应用也是不错的选择。当然了,还是那句话,一切从实际出发,实际出现什么样的情况,就采取什么样的措施。