我想知道是否有人可以告诉我 MongoDB 或 CouchDB 是否已为生产环境做好准备。
我现在正在研究这些存储解决方案(我现在很喜欢MongoDB),但是这些项目还很年轻,所以我预计我必须努力工作才能说服我的经理我们应采用这项新技术。
我想知道的是:
今天谁在生产环境中使用MongoDB或CouchDB?
您是如何使用MongoDB / CouchDB的?
采用这种新的存储机制时遇到了什么问题(如果有的话)(你是如何克服这些问题的?)
您是如何处理您必须处理的任何迁移问题的?
您对这些您想分享的解决方案有任何好/坏经历吗?
答案 0 :(得分:270)
我是10gen的CTO(MongoDB的开发人员),所以我有点偏颇,但我也管理了一些在生产中使用MongoDB的网站。
businessinsider已经在生产中使用mongo超过一年了。他们将其用于从用户和博客帖子到网站上的每个图像的所有内容。
shopwiki正在将它用于一些事情,包括实时分析和缓存层。他们每秒对一个相当大的数据库进行超过1000次写入。
如果你转到mongodb Production Deployments page,你会看到一些人在生产中使用mongo。
如果您对生产部署的规模或范围有任何疑问,请在我们的用户列表中发布,我们非常乐意为您提供帮助。
答案 1 :(得分:111)
BBC和meebo.com在生产中使用CouchDB,我的一个客户也是如此。 以下是使用Couch的其他人的列表:CouchDB in the wild
主要的挑战是知道如何组织文档并停止考虑关系数据。
答案 2 :(得分:44)
SourceForge使用MongoDB。请参阅this presentation或read here。
答案 3 :(得分:34)
我们正在运行CouchDB作为我们商店的MySQL替代品(70.0000件商品/商店,所有商品共有400万个属性,商品之间的交叉连接)。
我们的目标是:
从master-db轻松复制到具有不同文档的多个客户端。
快速预先计算的数据,例如“我对此属性和该过滤器有多少部分,符合这些条件”
事实:
但也是:
结果: MySQL作为数据创建和维护的数据库是可靠的,易于理解和处理。我想我们不会改变这一点。 但我也不想错过CouchDB视图的强大功能和复制设置的简易性。
由于配置错误和忘记了logrotates(查看构建时间过长或挂起,复制停止),生产沙发有时会导致数月工作后出现问题,但数据永远不会丢失,并且始终可以轻松重置。
答案 4 :(得分:27)
我在生产中使用CouchDB。目前,它存储了原始数据库模式中不存在的所有“可选”字段。现在我正考虑将所有数据移到CouchDB。
我承认,这是一个非常冒险的步骤。首先,因为它还不是v1.0。其次,因为它是驱动器空间的饥饿。通过我的计算,CouchDB文件(带索引)比具有相同行的MySQL数据库大约30倍。 但我很确定它会很好用。
答案 5 :(得分:18)
CouchDB 0.11(3月底发布)是1.0的功能冻结版本。这意味着我们将保持与1.0的当前API的兼容性,所以现在是时候再看看CouchDB,如果你有一段时间没有。
CouchDB 0.11 source code release is available here.有binary installers and other goodies linked here.
答案 6 :(得分:17)
我对MongoDB一无所知,但是从CouchDB FAQ:
CouchDB是否可以投入生产?
是的,请参阅InTheWild了解使用CouchDB的部分项目列表。另一个很好的概述是CouchDB Case Studies
另外,有些链接:
答案 7 :(得分:16)
我们在生产中使用couchdb,并且就在项目进入Apache之前。
我们使用它来存储我们可能使用dbms的所有内容,以及各种非结构化数据。就个人而言,我真的很喜欢你可以把各种数据扔进去,并根据情况使用视图来剔除你不需要的东西。
最困难的部分是远离dbms思维模式。当存储格式改变为安全时,我们编写了自己的迁移工具,因此这不是一个真正的问题。
我们还没有任何负面的经历,但是我们还没有在任何巨大的负载下进行设置。我认为事情会很好用,因为我们有两个从属服务器从一个获取所有写入的主服务器复制。我很确定我们不必这样做,以便复制正常工作,但这是我们在开始时设置它并且它卡住的方式。
答案 8 :(得分:13)
我们使用CouchDB存储移动入站和出站邮件,并通过我编写的一些自定义视图报告此流量。前端是用Python编写的。我们没有任何真正的技术问题,并且自12月底以来一直在运行。我遇到的唯一障碍是最初考虑使用MapReduce,但是一旦我学会了如何做到这一点,其他一切都顺利进行。
答案 9 :(得分:9)
我们目前正在生产中使用MongoDB作为缓存层以及用于产品导入和操作产品数据的存储引擎。我们是一家电子商务公司,管理着超过200万种产品(超过1亿个属性),跨越10多个分销商而没有MongoDB,这项任务几乎是不可能完成的。
答案 10 :(得分:1)
我们目前正在使用mongodb作为我们通过LAN协作的文件存储服务。 此外,像trello这样的项目正在使用mongodb作为其后端数据存储区。 我之前使用过couchdb,但没有使用过生产能力。
答案 11 :(得分:0)
我们正在移动后端服务中使用MongoDB,即Netmera.我们正在使用它来存储所有用户和内容数据。
答案 12 :(得分:0)
我已经在生产中使用CouchDB将近2年了。由于项目直接启动CouchDB实施,因此没有迁移工作。它作为一个数据库,存储从开始到打包的单个电子产品的数据。
由于我们销售的传感器具有高精度的要求,我们在不同阶段进行了大量测试,所有这些都将存储在CouchDB上的一个文档中。
我从经验中学到了一些学习曲线,即充分利用视图(或者也称为永久视图)。视图应该是经常调用的数据库的一小部分的“小过滤器”。
我的CouchDB数据库并不像其他巨型公司那样疯狂。但到目前为止,我仍然做得很好。目前我有400MB的24000个文件。
我喜欢CouchDB的功能是'复制','存储文档的修订'。
我在MongoDB上阅读了很多好评,如果有机会的话,我会想尝试一下。
答案 13 :(得分:0)
我们正在制作mongodb
www.beachfront.io - 每秒接近5k写入请求 www.beachfrontbuilder.com - 每秒500次读/写请求,维护10m用户数据& OLAP。
数据归档面临的唯一挑战是,我们通过实施自定义组件来克服这些挑战。
答案 14 :(得分:0)
这个问题已经接受了答案,但现在还有一天 NoSQL DB 正处于许多强大功能的趋势中。它是Couchbase
;在移动平台上以CouchbaseLite
运行,在服务器端以Couchbase Server
运行。
以下是Couchbase Lite的一些主要功能。
Couchbase Lite是一款轻量级,面向文档(NoSQL),可同步的数据库引擎,适合嵌入到移动应用中。
轻量级意味着:
嵌入式 - 数据库引擎是链接到应用程序的库,而不是单独的服务器进程。 小代码大小 - 对于移动应用程序很重要,通常通过单元网络下载。 快速启动时间非常重要,因为移动设备的CPU速度相对较慢。 内存使用率低 - 典型的移动数据集相对较小,但某些文档可能具有大型多媒体附件。 当然,良好的性能 - 确切的数字取决于您的数据和应用程序。
面向文档意味着:
以灵活的JSON格式存储记录,而不是需要预定义的模式或规范化。 文档可以具有任意大小的二进制附件,例如多媒体内容。 应用程序数据格式可以随着时间的推移而发展,而无需显式迁移。 MapReduce索引提供快速查找,无需使用特殊查询语言。
可同步意味着:
数据库的任何两个副本都可以通过高效,可靠,经过验证的复制算法实现同步。 同步可以是按需或连续的(延迟几秒)。 设备可以与远程服务器上的大型数据库的子集同步。 同步引擎支持间歇性和不可靠的网络连接。 通过app逻辑完全控制合并,可以检测和解决冲突。 修订树允许复杂的复制拓扑,包括服务器到服务器(用于多个数据中心)和点对点,无数据丢失或错误冲突。 Couchbase Lite为无缝iOS(Objective-C)和Android(Java)开发提供本机API。此外,它还包括用于PhoneGap的Couchbase Lite插件,它使您能够使用熟悉的Web应用程序编程技术和PhoneGap移动开发框架构建您开发的iOS和Android应用程序。
您可以在Couchbase Lite
上详细了解这将是下一件大事。
答案 15 :(得分:0)
说到生产,无缝故障转移/恢复都需要保姆 1- Couchbase,没有无缝的故障转移/恢复,需要手动干预。如果多个节点丢失,重新平衡需要花费太多时间,风险太大。
2- Mongo带有分片,从丢失配置服务器恢复数据,这不是一件容易的事情
答案 16 :(得分:0)
Adobe正在使用 MongoDB 为即将发布的 Adobe Experience Manager (以前称为 Day CQ )作为核心数据库引擎
我所在的代理机构的几个客户正在为大客户的项目使用 CouchDB 。
在我看来,两者都是伟大而可行的数据库。 :)
答案 17 :(得分:-2)
以下是使用mongoDB
生成部署站点的列表以及更多......
摘自: http://lineofthought.com/tools/mongodb
您也可以在那里查看其他数据库或工具。
答案 18 :(得分:-6)
MongoDB在向企业发放许可方面存在一些问题,我不确定细节,但我们的法律部门没有明确表示我们不允许在任何产品中使用MongoDB。