2011-12-15 38 views
9

Tôi đang tạo hệ thống viết blog mongodb/nodejs (tương tự như wordpress).Lưu trữ tệp trên đĩa hoặc MongoDB

Tôi hiện đang lưu hình ảnh trên đĩa và con trỏ được đặt trong mongo. Tôi đã tự hỏi vì tôi có tất cả các phiên được lưu trữ trong MongoDB để cho phép cân bằng tải dễ dàng trên các máy chủ, lưu trữ các tập tin thực tế trong Mongo cũng là một ý tưởng thông minh cho các thiết lập multiserver dễ dàng và/hoặc tăng hiệu năng.

Nếu mọi thứ đều được lưu trữ trong một DB, bạn chỉ có thể đẻ trứng nhiều máy chủ web và/hoặc lặp Mongo để mở rộng theo chiều ngang

ý kiến?

Trả lời

10

MongoDB là một lựa chọn tốt để lưu trữ các tập tin của bạn (Tôi đang nói về GridFS), đặc biệt đối với trường hợp sử dụng bạn đã mô tả ở trên. Khi bạn lưu trữ các tệp vào MongoDB (GridFS, không phải tài liệu), bạn sẽ có được tất cả khả năng sao chép và phân tích miễn phí, điều này thật tuyệt vời.

Nếu bạn phải sinh ra một máy chủ mới và bạn có các tệp đã có trong MongoDB, tất cả những gì bạn phải làm là kích hoạt bản sao (do đó mở rộng theo chiều ngang). Tôi chắc chắn điều này có thể giúp bạn tiết kiệm rất nhiều đau đầu.

Resources:

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

Lưu trữ ảnh dưới dạng tài liệu trong mongodb sẽ là một ý tưởng tồi vì tài nguyên có thể được sử dụng để gửi một lượng lớn dữ liệu thông tin sẽ được sử dụng để gửi tệp.

Hãy xem xét tệp lưu trữ tệp mongoDb GridFS, điều này có thể giải quyết vấn đề của bạn lưu trữ hình ảnh và cung cấp khả năng mở rộng theo chiều ngang.

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

4

Ngoài GridFS, bạn có thể xem xét việc triển khai dựa trên đám mây. Trong trường hợp đó, bạn có thể xem xét lưu trữ các tệp trong bộ nhớ dành riêng cho đám mây (ví dụ: Windows Azure có Bộ nhớ Blob). Gắn bó với Windows Azure cho ví dụ này (vì đó là những gì tôi làm việc với), bạn nên tham khảo một tệp bằng URI tài khoản lưu trữ của nó. Ví dụ:

https://mystorageacct.blob.core.windows.net/mycontainer/myvideo.wmv 

Vì bạn muốn được lưu trữ cơ sở dữ liệu MongoDB chính nó trong blob riêng của mình (và gắn kết như là ổ đĩa trên của bạn VM Linux hoặc Windows), sau đó bạn có thể chọn để lưu trữ các tập tin của bạn trong cả hai cùng tài khoản lưu trữ hoặc tài khoản lưu trữ hoàn toàn khác (với mỗi tài khoản lưu trữ cung cấp 100TB 200TB dung lượng lưu trữ).

Các vấn đề liên quan