Clojure에서 프로토콜로 ZeroMQ 및 BSON을 사용하여 두 개 이상의 다른 서버 응용 프로그램을 개발했다고 가정합니다. 단일 종속성을 공유하면서 단일 JVM 인스턴스를 사용하여 어떻게 배포 할 수 있습니까?단일 JVM 인스턴스에 Clojure 응용 프로그램 배포
각 독립 실행 형 응용 프로그램에 JVM 인스턴스를 사용하는 것이 메모리 낭비 인 것 같습니다. 앞으로 여러 Clojure 응용 프로그램을 개발할 계획이며 VPS 메모리는 저렴하지 않습니다.
명시 적으로 언급하지는 않았지만 응용 프로그램 서버 (Jetty, Glassfish)에서 실행되는 응용 프로그램은 상태를 격리하면서 동일한 JVM을 공유하는 것처럼 보입니다. 그러나 컨테이너가 필요하며 Servlets 또는 Enterprise JavaBeans에는 사용자 정의 프로토콜에 쉽게 적응할 수있는 구현이 없습니다.
난 무의미한 HTTP 서버 오버 헤드가 있다는 생각이 싫지만 Servlet을 사용하고 더미 service() 메소드를 구현하려고 생각 해왔다. EJB 컨테이너에 관해서는, 나는 심지어 그 구현을 이해할 수 없다.
init() 및 destroy() 메소드 만 필요한 컨테이너가 있으면 좋겠지 만 제공하는 응용 프로그램 서버를 찾을 수 없습니다.
어쩌면 방법이 있거나 응용 프로그램 서버가 필요하지 않을 수도 있습니다. 누군가 올바른 방향으로 나를 가리킬 수 있습니까?
당신은 이미 대부분의 사람들이 필요로하지 않는 많은 기능을 가진 Karaf에 갈 필요조차 없습니다. OSGi 프레임 워크 (Apache Felix, Equinox)는 이러한 응용 프로그램에서 작동합니다. 매우 가벼운 시작하고 사용합니다. –
응용 프로그램 내부에 인터페이스 (서블릿, EJB)를 구현할 필요없이? OSGi 응용 프로그램 서버에 JAR 파일 (DD 형식)을로드 할 수 있습니까? – adeandrade