多个后台服务,放到一个 tomcat 还是分开放在不同的 tomcat 呢

2020-04-27 15:12:10 +08:00
 NoKey

比如我这里有 10 个服务,10 个 war 包

是放在同一个 tomcat 呢

还是放在不同的 tomcat 里呢?

放在一个 tomcat 和多个 tomcat,对于同一台机器来说,有多大差异呢?

这里面按照什么参数来考量呢?

求大佬指点一下,谢谢

4480 次点击
所在节点    程序员
29 条回复
xetv
2020-04-28 14:10:41 +08:00
@goinghugh 如果单从这个角度来看放一起会稍微好点。
NoKey
2020-04-28 15:59:56 +08:00
@xetv 谢谢你的回复
ren2881971
2020-04-28 17:03:07 +08:00
多个 tomact 这样可以利用多个 jvm 。如果多个应用共用一个 jvm 性能很差。
iminto
2020-04-28 17:16:17 +08:00
@kop1989 多个后台服务,放到一个 tomcat 里,当然可以。

而且有个优点,可以多个应用,使用同一个 jar 依赖,减少内存占用,当然缺点也很明显,会彼此互相影响
kop1989
2020-04-28 17:22:02 +08:00
@iminto 当然,但是 iis 之类的 web 容器是有“应用程序池”概念的,也就是一个 iis 容器可以提供多个互不影响的“应用程序池”。
tomcat 据我所知应该是不能建立多个互不影响的 web 容器空间的吧?
iminto
2020-04-28 17:27:04 +08:00
@kop1989 嗯,tomcat 不行,得其他容器,比如 wildfly 应该是支持你说的这种
cpstar
2020-04-29 00:08:37 +08:00
@NoKey 那你要把简单的事情复杂化,那是不一样的
@abcbuzhiming docker 这东西,配全了自然好。但是如 LZ 单机起 10 个服务,然后反向代理或者散端口,咱不说服务器扛住扛不住,就这些配置(包括 nginx 和各个 tomcat 的)就够折腾一阵子了。docker 至少把配置都给虚拟化了,简单一个命令行,启动 10 个虚拟应用,不省心么
NoKey
2020-04-29 10:03:16 +08:00
@cpstar docker 用的不多,请教一下,docker 里面的 tomcat 需要配置不? docker 上面还是应该有一个 nginx 吧?
cpstar
2020-04-29 23:48:24 +08:00
@NoKey tomcat 想启动起来,得把 java_home 弄好吧,得把 server.xml 配置上吧,甚至 context.xml 和 web.xml 都得搞一搞,然后 catalina.sh 。相比较,docker 一条命令行,端口、webapps 都配置好了,当然想深入配置的话,可以把 server.xml 单拎出来,至于 java,镜像里已经封装好了。
比如一句 docker run -it --rm -p 8888:8080 tomcat:9.0,直接启动一个标准 tomcat 实例,增加了-p 参数,开本机的 8888 端口对应到虚机里的 8080 端口,也就是将标准 tomcat 的 8080 转成了 8888,就这个过程按照配置的话至少 vi 一下 server.xml 。

如果一个实例,那这么干一票也就算了,但是 10 个实例,10 条命令行省心还是干 10 次配置省心呢?

至于前端的 nginx,看 lz 需求了,我感觉大概率他只需要 10 个端口,不需要统一端口通过 servername 或者 uri_path 区分

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/666627

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX