2011-12-15 4 views
9

mongodb/nodejs 블로깅 시스템을 만들고 있습니다 (Wordpress와 유사).디스크 또는 MongoDB에 파일 저장

현재 이미지가 디스크에 저장되어 있고 포인터가 몽고에 있습니다. 나는 MongoDB에 저장된 모든 세션을 서버간에 쉽게로드 밸런싱 할 수있게하고 Mongo에 실제 파일을 저장하는 것이 쉬운 다중 서버 셋업 및/또는 성능 향상을위한 현명한 아이디어가 될 것이므로 궁금합니다. 모든 것이 DB에 저장되어있는 경우

, 당신은 단순히 수평

의견을 확장하기 위해 더 많은 웹 서버 및/또는 몽고의 복제를 생성 할 수 있습니까?

답변

10

MongoDB를 특별히 사용하는 경우에, (나는 GridFS에 대해서 이야기하고) 파일을 저장할 수있는 좋은 방법입니다 당신은 위에서 설명한. MongoDB (문서가 아닌 GridFS)에 파일을 저장하면 무료로 모든 복제 및 공유 기능을 사용할 수 있습니다. 새로운 서버를 생성해야하고 MongoDB를에 이미 파일이있는 경우

, 당신이해야 할 (따라서 수평 확장) 복제를 활성화하는 것입니다. 나는 이것이 당신에게 많은 두통을 줄 수 있다고 확신합니다.

자료 : GridFS에서 제외

Is GridFS fast and reliable enough for production?
http://www.mongodb.org/display/DOCS/GridFS
http://www.coffeepowered.net/2010/02/17/serving-files-out-of-gridfs/

2

하여 MongoDB에서 문서 파일을 전송하기 위해 사용되는 정보 많은 양의 데이터를 전송하는 데 사용 된 수있는 자원으로, 나쁜 생각하는 것처럼 이미지를 저장.

이미지를 저장할 문제를 해결할 수있는 mongoDb 파일 저장소 GridFS를 살펴보고 수평 확장 성도 제공하십시오.

http://www.mongodb.org/display/DOCS/GridFS http://www.mongodb.org/display/DOCS/GridFS+Specification

4

, 당신은 클라우드 기반 배포를 고려 될 수 있습니다. 이 경우 클라우드 관련 저장소에 파일을 저장하는 것을 고려할 수 있습니다 (예 : Windows Azure에는 Blob 저장소가 있음). 이 예제에서 Windows Azure를 계속 사용하면 (그 작업과 관련된 작업이므로) 스토리지 계정 URI로 파일을 참조하게됩니다. 예를 들어 :

당신이 자신의 BLOB에서 MongoDB를 데이터베이스 자체를 저장하는 (그리고 리눅스 또는 Windows VM의 디스크 볼륨으로 마운트), 당신은 다음 중 하나를 동일에 파일을 저장하도록 선택할 수 있습니다 될 것 때문에
https://mystorageacct.blob.core.windows.net/mycontainer/myvideo.wmv 

저장소 계정 또는 완전히 다른 저장소 계정 (각 저장소 계정은 100TB 200TB의 저장소를 제공함).

관련 문제