用 Tomcat 替代 Weblogic?

qua*_*tum 1 java tomcat weblogic weblogic-10.x apache-tomee

我正在研究用 Apache Tomcat 替换开发机器上的 Weblogic 10.x,如果任何人有任何见解或建议,我将不胜感激。

任何尝试在生产 Web 应用服务器怪物上进行开发工作的人可能都知道更换的原因 - 以提高开发效率。该应用程序很大(数百万行代码),遗留代码库包含大量技术(Struts、EJB 2、EJB 3 等),并且代码库的更改经常需要重新部署/重新启动 Web 服务器(甚至使用 JRebel) - 这需要很长时间(大约 5-10 分钟)。这显然会浪费时间、带来挫败感并导致错误。

我想知道的是 - 考虑这种替代是否可行?代码库稍后将在开发管道中针对真正的 WL 实例进行验证,但对于开发机器,我希望它尽可能精简。这显然不会是一个微不足道的转变,但我讨厌花一周的时间去做一些完全不可能的事情,或者至少是绝对不可取的事情。

很明显,我需要一些实现 JavaEE 规范的东西(不需要正式验证 - 只要它能工作:)),所以我研究了各种可能性,对我来说,Apache TomEE 看起来很有前途。Geronimo 已经死了很久了,Glassfish 似乎陷入了困境(?),而 Jonas 则默默无闻。在 Java 8 下工作将是一个很大的优势(TomEE 1.7 似乎支持)。

最后,我们不使用 XA 事务(两阶段提交),因此至少不需要支持它。

这是一个合理的做法吗?我缺少其他选择吗?有没有转型的经验?欢迎任何想法。

小智 5

这里是 TomEE 的长期用户。过去 3 年我们一直在生产中使用 TomEE。我们从 1.7 版 (Java EE 6) 上的更大 SOA 开始,一年前升级到微服务 TomEE 7 (Java EE 7)。

我们的堆栈是 Kotlin、JAX-RS、CDI、JSON-B、BVal、mybatis for db(pgsql 和 db2)、elasticsearch、hazelcast、kafka、akka-stream-kafka 和 akka。TomEE 是一个很好的小型应用服务器。在启动和初始垃圾收集时,我认为它运行大约 30m 堆使用量(或更少)。我们开始在 Kubernetes 上运行 Docker。

WildFly 正在发生一些很酷的事情,而且看起来他们更加活跃,而且显然他们背后有一家庞大的公司。

我们同意并运行 Adam Bien 所支持的设置,由于 docker 镜像的大小,该设置不会变得超级jar,传输 128M 容器而不是较小的 5-20M,在完整的应用程序服务器上运行。

我尝试过WildFly Swarm,它很酷,而且还有一个空心罐部署,您可以部署战争而不是fatjar(meecrowave也支持这个,我认为Payara micro也支持)。

我会将 TomEE、WildFly(和 Swarm)和 Payara 放在我的应用程序服务器列表中,以用于坚持 Java EE 路线。如果您考虑不同的方向,请准备好查阅大量信息、文章、博客等。Akka-HTTP?玩?斯卡拉?Spring Boot,只运行在 netty/tomcat/etc 上?vert.x?

这么多的玩家可供选择。找到一个你喜欢并且有效的。现在对我们来说就是 TomEE。