gpt4 book ai didi

servlets - 在单个 JVM 实例中部署 Clojure 应用程序

转载 作者:行者123 更新时间:2023-12-05 01:18:10 25 4
gpt4 key购买 nike

假设我在 Clojure 中使用 ZeroMQ 和 BSON 作为协议(protocol)开发了两个或更多不同的服务器应用程序。如何使用单个 JVM 实例部署它们,同时共享公共(public)依赖项?

为每个独立应用程序使用一个 JVM 实例似乎很浪费内存。我计划 future 开发几个 Clojure 应用程序,VPS 内存并不便宜。

虽然没有明确说明,但在应用服务器(Jetty、Glassfish)中运行的应用程序似乎共享相同的 JVM,同时隔离它们的状态。但是,它们需要一个容器,而且 Servlet 或 Enterprise JavaBeans 都没有我可以轻松适应我的自定义协议(protocol)的实现。

我一直在考虑使用 Servlet 并实现一个虚拟 service() 方法,尽管我不喜欢有一个毫无意义的 HTTP 服务器开销的想法。至于 EJB 容器,我什至无法弄清楚它的实现。

有一个只需要 init() 和 destroy() 方法的容器会很好,但我找不到提供它的应用程序服务器。

也许有办法,或者我什至不需要应用程序服务器。有人能指出我正确的方向吗?

最佳答案

听起来您可以使用 EJB 容器,但前提是使用它更容易或更简单。你看过Immutant ?它基本上是对 Clojure 的 JBossAS 的包装,由 Red Hat 的人(他们也拥有 JBossAS)编写。

除了作为应用服务器之外,这些家伙还围绕 Clojure 封装了 JMS 和其他 Java-EE 功能,例如在应用程序之间发送消息 appears pretty simple :

此外,他们有 DaemonsJobs ,它可能会提供类似于您在 init() 中描述为简单服务的内容和 destroy() .

话虽这么说,我还没有使用它,所以我不能保证它的真棒/可怕。

关于servlets - 在单个 JVM 实例中部署 Clojure 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13156952/

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