如何解决在单独的进程中运行webapps
| 我想运行一个Web容器,每个Web应用程序都在其自己的进程(JVM)中运行。传入的请求由运行在端口80上的代理webapp转发给各个webapp,每个webapp运行在自己的JVM中自己的端口上。 这将解决三个问题: 使用JNI(其中JNI代码在两次重启之间更改)的Webapp无法重启。无法确保在加载新的Webapp之前已对旧的Webapp进行了垃圾回收,因此当代码调用System.loadLibrary()时,JVM会抛出:“ 0” 每次重新加载Webapp时,库都会泄漏内存,最终迫使服务器重新启动。 Tomcat在解决此问题方面取得了进展,但永远不会完全解决。 重新启动更快。我提出的机制将允许即时重启webapp。我们不再需要等待旧的Webapp完成卸载,这是最慢的部分。 我在这里和这里发布了RFE。我想知道你的想法。 今天有没有现有的Web容器?解决方法
我要结束这个问题,因为我似乎已陷入困境:http://tomcat.10.n6.nabble.com/One-process-per-webapp-td2084881.html
解决方法是,我正在为每个Web应用程序手动启动一个单独的Jetty实例。
, 您是否不能只为每个容器部署一个应用程序,然后使用DNS条目和反向代理来做完全相同的事情?我相信Weblogic具有托管域形式的类似内容。
, 不,AFAIK,它们都不起作用,这可能是因为Java Web容器强调遵循Servlet API的原因-每次HTTP请求都会产生一个线程。您想要的是在JVM级别上的分支-这根本不是标准的Java习惯用法。
, 如果我正确理解,您正在要求企业质量服务器的标准功能,例如IBM的WebSphere Network Deployment(我为IBM工作的免责声明),您可以在其中跨许多JVM分发应用程序,而这些JVM实际上可以跨许多物理机分发。机器。
我不确定您的基本前提是否正确。不必重新启动整个JVM即可部署新版本的应用程序。许多应用服务器将使用类加载器策略,该策略允许它们丢弃某个应用程序的版本并加载新的应用程序。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。