gpt4 book ai didi

java - 在单独的进程中运行 webapps

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:16:39 24 4
gpt4 key购买 nike

我想运行一个 Web 容器,其中每个 Web 应用程序都在其自己的进程 (JVM) 中运行。传入请求由在端口 80 上运行的代理 Web 应用程序转发到各个 Web 应用程序,每个(Web 应用程序)在其自己的 JVM 中的自己的端口上运行。

这将解决三个问题:

  • 使用 JNI 的 Web 应用程序(其中 JNI 代码在重新启动之间更改)无法重新启动。没有办法保证旧的 webapp 在加载新的 webapp 之前已经被垃圾收集,所以当代码调用 System.loadLibrary() 时,JVM 抛出:java.lang.UnsatisfiedLinkError: Native Library x already loaded in另一个类加载器。
  • 每次重新加载 web 应用程序时,库都会泄漏内存,最终迫使整个服务器重新启动。 Tomcat 在解决这个问题方面取得了进展,但它永远不会被完全修复。
  • 重启速度更快。我提议的机制将允许近乎即时的 webapp 重新启动。我们不再需要等待旧的 webapp 完成卸载,这是最慢的部分。

我已经发布了一个 RFE herehere .我想知道你的想法。

现在有任何现有的网络容器这样做吗?

最佳答案

我正在结束这个问题,因为我似乎已经走进了死胡同:http://tomcat.10.n6.nabble.com/One-process-per-webapp-td2084881.html

作为解决方法,我手动为每个 webapp 启动一个单独的 Jetty 实例。

关于java - 在单独的进程中运行 webapps,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6333056/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com