プロトコルとして ZeroMQ と BSON を使用して Clojure で開発された 2 つ以上の異なるサーバー アプリケーションがあるとします。共通の依存関係を共有しながら、単一の JVM インスタンスを使用してそれらをデプロイするにはどうすればよいですか?
スタンドアロン アプリケーションごとに JVM インスタンスを使用するのは、メモリの無駄遣いのようです。将来、いくつかの Clojure アプリケーションを開発する予定ですが、VPS メモリは安くはありません。
明示されていませんが、アプリケーション サーバー (Jetty、Glassfish) で実行されているアプリケーションは、状態を分離しながら同じ JVM を共有しているように見えます。ただし、コンテナーが必要であり、サーブレットも Enterprise JavaBeans も、カスタム プロトコルに簡単に適応できる実装を持っていません。
無意味な HTTP サーバーのオーバーヘッドがあるという考えは好きではありませんが、サーブレットを使用してダミーの service() メソッドを実装することを考えていました。EJB コンテナーに関しては、その実装もわかりません。
init() および destroy() メソッドのみを必要とするコンテナーがあればよいのですが、それを提供するアプリケーション サーバーが見つかりません。
回避策があるか、アプリケーションサーバーさえ必要ないのかもしれません。誰かが私を正しい方向に向けることができますか?