我有几个 webapps 部署到生产环境中。我使用 Tomcat 作为我的 servlet 引擎已有 10 年了。我正在考虑从 deploy-a-war-into-Tomcat 模型中嵌入 Jetty 模型。
这些 webapp 部署在多个服务器上,其中一些是水平扩展的(使用基于 nginx IP 哈希的分区)。
我看到了一些优点:
我可以为特定的 webapp 配置我的 servlet 引擎(而不是为运行多个不同 webapps 的 Tomcat 进行通用配置)
通过在同一主机上运行多个 Jetty 实例(配置为侦听不同的端口)来水平扩展我的 web 应用程序会更容易。我也可以使用 Tomcat 来执行此操作(过去我曾在同一主机上运行多个 tomcat 实例),但我已转向使用 Debian 包(.deb 档案)进行部署,并且使用运行多个 Tomcat 并不容易这种方法。
我的部署包 (.deb) 在构建时更加“完整”,即我不必确保 Tomcat 实例配置正确。
和缺点:
在服务器上运行的 servlet 引擎实例越多,意味着使用的资源越多
我从来没有使用过码头。我认为我的网络应用程序中没有任何特定于 Tomcat 的内容,但我不确定。
我主要关心的是 Jetty 将使用的资源量。如果我有一个运行 4 个 webapps 的 Tomcat 实例,那么运行四个 Jetty 实例的资源(内存/处理器)会有什么区别?
这个问题可能过于开放,但我很想知道我是否忽略了某些东西,或者是否有人有从 Tomcat 迁移到(嵌入式)Jetty 的经验。