开发者社区> 问答> 正文

[@项籍][¥20]同一台服务器运行多个Tomcat会不会有影响?Tomcat的隔离性如何?

同一台服务器运行多个Tomcat会不会有影响?Tomcat的隔离性如何?

展开
收起
东陵碣石 2018-10-30 18:53:09 2615 0
2 条回答
写回答
取消 提交回答
  • 多年互联网开发经验,从事业务开发、平台开发、架构设计、云计算、APM等领域。目前专注于供应链方向的解决方案治理和服务交易域

    同一个Tomcat多个实例

    • 原理篇:多个war部署一个tomcat实例的本质是容器中维护多个WebModule(关注下应用中的web.xml),通过request mapping到相应的Module进行请求的处理。从业务来看共享的资源包括了Endpoint(流量)、HttpServletRequestBuffer(缓存)、RequestMapping、HttpServeltRequestParser(计算);不共享的资源包括了ServletRequestContext、 Session、Servlet
    • 容器篇:共享了JVM那么不得不说说内存管理和GC可能遇到的那些事。你设想A应用热部署了应用导致老年代晋升触发了FGC,B应用发生了5S的服务不可用;再设想A应用用户上传一个大文件造成了OOM,B应用也跟着宕机了
    • 部署篇:如果是不同实例,那么部署在一个tomcat就会面临上述问题;同一个实例部署在一起就更没有必要了(同样的JVM环境下应用的内存环境都是double,无疑加剧了GC的压力)

    同一个服务器多个Tomcat实例

    • 资源隔离问题:JIT和GC对CPU的抢占会影响其他实例中服务的稳定性
    • 资源共享问题:磁盘

    综合来说,多实例部署一个Tomcat不推荐;一个服务器多个Tomcat在服务稳定性不是特别严苛的场景下是可以接受

    2019-07-17 23:11:23
    赞同 1 展开评论 打赏
  • 只要端口不一样,完全没有问题

    2019-07-17 23:11:23
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
如何运维千台以上游戏云服务器 立即下载
网站/服务器取证 实践与挑战 立即下载
ECS计算与存储分离架构实践 立即下载