假设我使用 ZeroMQ 和 BSON 作为协议在 Clojure 中开发了两个或多个不同的服务器应用程序。如何使用单个 JVM 实例部署它们,同时共享公共依赖项?
为每个独立应用程序使用 JVM 实例似乎是一种内存浪费。以后打算开发几个Clojure应用,VPS内存也不便宜。
尽管没有明确说明,在应用服务器(Jetty、Glassfish)中运行的应用程序似乎共享同一个 JVM,同时隔离它们的状态。但是,它们需要一个容器,并且 Servlet 或 Enterprise JavaBeans 都没有可以轻松适应我的自定义协议的实现。
我一直在考虑使用 Servlets 并实现一个虚拟的 service() 方法,尽管我不喜欢有一个毫无意义的 HTTP 服务器开销的想法。至于 EJB 容器,我什至无法弄清楚它的实现。
有一个只需要 init() 和 destroy() 方法的容器会很好,但我找不到提供它的应用程序服务器。
也许有办法解决,或者我什至不需要应用服务器。有人能指出我正确的方向吗?