我们 future 的架构是向 docker/micro services 发展。目前我们正在使用 JBoss EAP 6.4(有可能升级到 EAP 7)和 Tomcat。
根据我的说法,JEE 容器对于微服务环境来说太重了(速度慢、内存更多、维护成本更高等)。但是,有人告诉我 EAP 7 速度很快,重量很轻,可用于开发微服务。在为 docker/microservices 决定 EAP 7 还是 Tomcat 8 时,您的意见是什么?成本和速度将是考虑因素。
最佳答案
EAP7 vs Tomcat 8 是一个古老的问题,被多次回答 here , here和 here .
Tomcat 只是一个 Web 容器,而 EAP7 是一个应用程序服务器,它提供所有 Java EE 7 功能,例如持久性、消息传递、Web 服务、安全性、管理等。EAP7 有两个配置文件 - Web Profile 和 Full Profile。 Web Profile 是更精简的版本,仅包含构建 Web 应用程序通常所需的相关实现。如您所料,完整配置文件包含该平台的全部荣耀。因此,使用 EAP 7 Web Profile 将帮助您减少相当多的臃肿。
使用 Tomcat,您必须使用 Spring 之类的东西来带来等效的功能并将所有相关的 JAR 打包到您的应用程序中。
当您开始一个全新的项目并且手头有 Java EE 或 Spring 资源时,这些讨论通常很有帮助。以下是您可以考虑使用 EAP7 的原因:
您也可以考虑TomEE .它们提供与 Tomcat 集成的 Java EE 堆栈。
正如@Federico 推荐的那样,另一种选择是考虑使用 WildFly Swarm .然后,您就可以真正开始定制您想要的 Java EE 平台的哪些部分了。您的部署模型正在使用 JAR 文件。
至于使用 Docker 打包,它们都提供了一个基础镜像,您需要将您的应用程序捆绑在其中。以下是将 Docker 镜像用于微服务的几个重要注意事项:
作为个人笔记,我比 Tomcat/Spring 更熟悉 Java EE 堆栈,WildFly 仍然是最喜欢的应用程序服务器。
关于docker - 哪个应用程序容器更适合 Docker 容器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42074504/