用 Tomcat 替换 Weblogic?

Replacing Weblogic with Tomcat?

我正在研究用 Apache Tomcat 替换开发机器的 Weblogic 10.x,我很感激任何人可能有的任何见解或建议。

任何试图在生产 webapp 服务器怪物上进行开发工作的人都可能知道更换的原因 - 以提高开发效率。该应用程序很大(几百万行代码),遗留代码库,包含大量技术(Struts、EJB 2、EJB 3,仅举几例)并且对代码库的更改经常需要执行 redeploy/restart 的 Web 服务器(即使使用 JRebel)——这需要很长时间(大约 5-10 分钟)。这显然会浪费时间、带来挫折并导致错误。

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

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

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

这是一个合理的方法吗?我还缺少其他选择吗?任何过渡的经验?欢迎任何想法。

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

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

WildFly 发生了一些很酷的事情,看起来他们更活跃,显然他们背后有一个庞大的公司。

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

我试过 WildFly Swarm,它很酷,还有一个空心罐部署,你可以部署一个 war(meecrowave 也支持这个,我认为 Payara micro 也是)。

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

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