2013-10-24 5 views
2

설명서에서 얻은 것은 다른 컴퓨터에서 별도의 프로세스로 실행되며 Java 용 mongo db 클라이언트 드라이버를 사용하여 통신 할 수 있으며 정상적인 작업을 수행 할 수 있습니다.Java에 내장 된 MongoDB

하지만 Java 응용 프로그램에서 MongoDB를 내장 데이터베이스로 사용할 수 있습니까? 내 말은, 다른 컴퓨터에서 별도의 프로세스가 아니거나 동일한 컴퓨터에서 별도의 프로세스가 아니라는 의미입니다. 그것은 자바 응용 프로그램의 일부가되어야합니다.

도와 주실 수 있습니까?

+4

가능한 복제본 [임베디드 데이터베이스로 mongodb를 사용할 수 있습니까?] (http://stackoverflow.com/questions/6115637/can-mongodb-be-used-as-an-embedded-database) – zero323

답변

8

아니요, 불가능합니다. MongoDB는 메모리 매핑 파일을 사용하는 원시 C++ 응용 프로그램입니다. 소켓 등은 JVM에서 실행되지 않습니다.

또한 MongoDB는 웹 스케일 응용 프로그램, 큰 데이터, 장애 조치 클러스터 (복제 세트) 및 자동 샤딩 용으로 제작되었지만 임베디드 응용 프로그램에서 실제로 의미가없는 것은 아닙니다. 또한 임베디드 애플리케이션에 바람직하지 않은 메모리 사용량 측면에서 보면 매우 공격적입니다.

--edit 후 zero323의 comment--

당신은 db4o에 내장 위해 만들어진 자바를위한 객체 데이터베이스를 살펴 할 수 있습니다.

또한 데이터베이스를 임베드 할 때 라이센스가 사용자를 물을 수 있으며 MongoDB AGPL의 경우 동일한 라이센스하에 강제로 코드를 릴리스 할 수 있습니다.

+0

... 전체 코드를 AGPL에 감염 시키면 네트워크를 통해이 코드를 사용하는 모든 사람에게 라이센스를 요구하기 때문에 실제로는 번거로울 수 있습니다. 정상적인 GPL 응용 프로그램을 사용하면 원본 서버 만 실행될 때 원본을 유지하는 것이 좋습니다. – Philipp