我们可以在一个 JVM 中运行多个进程吗?每个进程都应该有自己的内存配额吗?
我的目标是在新的 http 请求进入时启动新进程,并为该进程分配单独的内存,以便每个用户请求都有自己的内存配额 - 如果内存配额已满,则不会打扰其他用户请求。
我怎样才能实现这个目标?
不确定这是否是假设。
简短的回答:不是真的。
Java 平台为您提供两种选择:
-
Threads。这是许多情况下的典型答案:每个新的传入请求都由一个单独的线程处理(该线程可能来自池,以限制并行创建/使用的线程实例的总数)。但当然:线程存在于同一个进程中;不存在通过线程正在执行的操作来控制“关联”的内存消耗这样的事情。
-
子进程。您可以创建一个real处理并使用它来运行您想要运行的任何内容。但是当然:那么你就有了external真实的处理过程。
所以,本质上,真正的答案是:不,你不能将这个想法应用到 Java 上。 “更多”Java 解决方案是研究以下概念:应用服务器,例如 Tomcat 或 WebSphere。
或者,如果您坚持手动执行操作;您可以构建自己的“负载均衡器”;你在哪里one面向客户端的 JVM;它只是将请求“转发”到许多其他 JVM 之一;而那些“其他”JVM 将独立工作;每个都在自己的进程中运行;当然,您可以对 CPU/内存/...使用情况进行“微观管理”。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)