485

我想知道是否有人可以告诉我MongoDBCouchDB是否已准备好用于生产环境。

我现在正在研究这些存储解决方案(目前我更喜欢 MongoDB),但是这些项目还很年轻,所以我预见我将不得不非常努力地说服我的经理我们应该采用这个新技术。

我想知道的是:

  1. 现在谁在生产环境中使用 MongoDB 或 CouchDB?

  2. 您如何使用 MongoDB/CouchDB?

  3. 当您采用这种新的存储机制时,您遇到了哪些问题(如果有的话)(以及您是如何克服这些问题的)?

  4. 您是如何处理必须处理的任何迁移问题的?

  5. 您对这些解决方案中的任何一个有什么好的/坏的经验,您想分享吗?

4

19 回答 19

267

我是 10gen(MongoDB 的开发人员)的 CTO,所以我有点偏见,但我也管理一些在生产中使用 MongoDB 的站点。

businessinsider已经在生产中使用 mongo 一年多了。他们将它用于从用户和博客文章到网站上的每张图片的所有内容。

shopwiki将它用于一些事情,包括实时分析和缓存层。他们每秒对一个相当大的数据库进行超过 1000 次写入。

如果您转到mongodb 生产部署页面,您会看到一些在生产中使用 mongo 的人。

如果您对生产部署的规模或范围有任何疑问,请在我们的用户列表上发帖,我们将非常乐意提供帮助。

于 2009-05-23T00:07:08.563 回答
110

BBCmeebo.com在生产中使用 CouchDB,我的一位客户也是如此。以下是使用 Couch 的其他人的列表:CouchDB in the wild

主要挑战是知道如何组织文档并停止思考关系数据。

于 2009-07-23T22:16:58.723 回答
44

SourceForge使用 MongoDB。请参阅此演示文稿阅读此处

于 2009-07-20T07:12:05.790 回答
34

我们正在为我们的商店运行 CouchDB 作为 MySQL 的替代品(70.0000 个商品/商店,所有商品的总共 400 万个属性,商品之间的交叉连接)。

我们的目标是:

  1. 从主数据库轻松复制到具有不同文档的多个客户端。

  2. 快速预先计算的数据,例如“我有多少具有此属性和过滤器的零件,适合这些条件”

事实:

  1. 我们的商店现在运行速度比 MySQL 快得多(并且 mysql-database 需要额外 1-3 天的预计算(因此每月更新两次),使数据准备好进行产品计数和过滤,CouchDB 需要 5 小时,所以我们可以每晚更新产品数据)
  2. 为商店节点设置(过滤的)数据分发和备份既快速又简单

但是也:

  1. 理解 map/reduce 和没有连接的限制是相当困难的
  2. 在没有外部程序的情况下,无法对“删除位置”或“更新位置”等数据进行操作
  3. 除非出现问题,否则复制效果很好;那么真的很难找出原因(对于初学者)
  4. 如果您不是 Linux 极客,那么安装没有二进制文件的 CouchDB(是的,有一些,但不是针对每个操作系统/版本)可能会很困难。但是 CouchDB 社区很有帮助(#couchdb),幸运的是,那里有一些公司(cloudant、iriscouch)提供从免费到大企业的服务。
  5. CouchDB 正在向前发展,因此正在进行许多更改(改进),可能会改变他们的工作方式。但基本情况保持稳定。

结果:MySQL作为数据创建和维护的数据库是可靠且易于理解和处理的。我认为我们不会改变这一点。但我也不想错过 CouchDB 视图的强大功能和复制设置的简易性。

由于配置错误和忘记了 logrotates(视图构建需要太长时间或挂起,复制停止),生产沙发有时会在工作数月后引起麻烦,但不会丢失数据,并且总是可以轻松重置。

于 2012-02-16T22:56:25.890 回答
27

我在生产中使用 CouchDB。目前它存储了所有那些不在原始数据库模式中的“可选”字段。现在我正在考虑将所有数据移动到 CouchDB。

我承认,这是一个相当冒险的步骤。首先,因为它还不是 v1.0。其次,因为它需要驱动器空间。根据我的计算,CouchDB 文件(带索引)比具有相同行的 MySQL 数据库大 30 倍左右。但我很确定它会很好。

于 2009-07-14T00:35:54.063 回答
18

CouchDB 0.11(3 月底发布)是 1.0 的功能冻结版本。这意味着我们将保持与 1.0 的当前 API 的兼容性,所以如果您有一段时间没有再看一下 CouchDB,那么现在是时候重新审视一下 CouchDB。

CouchDB 0.11 源代码版本可在此处获得。这里链接了二进制安装程序和其他好东西。

于 2010-04-06T05:37:25.407 回答
17

我对 MongoDB 一无所知,但来自CouchDB 常见问题解答

CouchDB 准备好投入生产了吗?

是的,请参阅InTheWild了解使用 CouchDB 的部分项目列表。另一个很好的概述是CouchDB 案例研究

另外,一些链接:

于 2009-05-21T23:37:24.553 回答
16

我们在生产中使用 couchdb,并且在项目进入 Apache 保护伞之前就已经使用了。

我们使用它来存储我们可能会使用 dbms 的所有内容,以及各种非结构化数据。就个人而言,我真的很喜欢您如何将各种数据放入其中并根据情况使用视图来剔除您不需要的内容。

最困难的部分是摆脱 dbms 的思维方式。为了安全起见,当存储格式发生变化时,我们编写了自己的迁移工具,所以这并不是真正的问题。

我们还没有任何负面的经历,但话又说回来,我们还没有在任何类型的巨大负载下进行设置。我认为事情会很好,因为我们有两个从属服务器,它们从一个获取所有写入的主服务器复制。我很确定我们不必那样做才能使复制正常工作,但这就是我们一开始就设置它的方式,然后它就卡住了。

于 2009-05-22T09:26:57.600 回答
13

我们使用 CouchDB 存储移动入站和出站消息,并通过我编写的一些自定义视图报告此流量。前端是用 Python 编写的。我们没有遇到任何真正的技术问题,它自 12 月底以来一直在运行。我遇到的唯一障碍是最初考虑 MapReduce,但是一旦我学会了如何做到这一点,其他一切都很顺利。

于 2009-05-25T21:10:05.887 回答
9

我们目前在生产中使用 MongoDB 作为缓存层以及产品导入和操作产品数据的存储引擎。我们是一家电子商务公司,管理超过 200 万个产品(100+ 百万个属性),跨越 10 多个分销商,如果没有 MongoDB,这项任务几乎是不可能的。

于 2010-12-01T21:09:55.000 回答
1

我们目前正在使用 mongodb 作为我们通过 LAN 进行协作的文件存储服务。此外,像trello这样的项目正在使用 mongodb 作为他们的后端数据存储。我之前使用过couchdb,但没有生产能力。

于 2012-07-06T10:40:01.747 回答
0

我们在我们的移动后端服务Netmera 的生产环境中使用 MongoDB。我们使用它来存储所有用户和内容数据。

于 2012-06-25T11:25:01.510 回答
0

我已经在生产环境中使用 CouchDB 将近 2 年了。由于项目直接从 CouchDB 实施开始,因此没有迁移工作。它作为一个数据库,存储单个电子产品从开始到包装的数据。

由于我们销售的传感器需要高精度,因此我们在不同阶段进行了大量测试,所有这些都将存储在 CouchDB 上的一个文档中。

我从我的经验中学到了一些学习曲线,那就是充分利用视图(或也称为永久视图)。视图应该是经常调用的数据库的一部分的“小过滤器”。

我的 CouchDB 数据库不像其他大公司那么疯狂。但到目前为止,我仍然做得很好。目前我有 700MB 的 24000 个文档。

我喜欢 CouchDB 的功能是“复制”,“存储文档的修订版”。

我读过很多关于 MongoDB 的好评,如果有机会我会想尝试一下。

于 2013-10-28T08:54:39.090 回答
0

我们在生产中使用 mongodb

www.beachfront.io - 每秒接近 5k 写入请求 www.beachfrontbuilder.com - 每秒 500 次读取/写入请求,维护 1000 万用户数据和 olap。

数据归档面临的唯一挑战是我们通过实施自定义组件来克服。

于 2013-11-22T08:18:23.650 回答
0

这个问题已经接受了答案,但现在又多了一个NoSQL DB的趋势,因为它的许多强大功能。它是Couchbase;它CouchbaseLite在移动平台和Couchbase Server服务器端运行。

以下是 Couchbase Lite 的一些主要功能。

Couchbase Lite 是一个轻量级、面向文档 (NoSQL)、可同步的数据库引擎,适合嵌入到移动应用程序中。

轻量级的意思:

嵌入式——数据库引擎是链接到应用程序的库,而不是单独的服务器进程。小代码量——对于通常通过蜂窝网络下载的移动应用程序很重要。快速启动时间——这很重要,因为移动设备的 CPU 相对较慢。内存使用率低——典型的移动数据集相对较小,但某些文档可能包含大型多媒体附件。良好的性能——当然,确切的数字取决于您的数据和应用程序。

面向文档的意思是:

以灵活的 JSON 格式存储记录,而不需要预定义的模式或规范化。文档可以有任意大小的二进制附件,例如多媒体内容。应用程序数据格式可以随着时间的推移而发展,而无需显式迁移。MapReduce 索引提供快速查找,无需使用特殊的查询语言。

可同步的意思:

通过高效、可靠、经过验证的复制算法,可以使数据库的任意两个副本同步。同步可以是按需或连续的(延迟几秒钟)。设备可以与远程服务器上的大型数据库的子集同步。同步引擎支持间歇性和不可靠的网络连接。可以检测和解决冲突,应用程序逻辑完全控制合并。修订树允许复杂的复制拓扑,包括服务器到服务器(用于多个数据中心)和对等,而不会丢失数据或错误冲突。Couchbase Lite 为无缝 iOS (Objective-C) 和 Android (Java) 开发提供原生 API。此外,它还包括用于 PhoneGap 的 Couchbase Lite 插件,

您可以在Couchbase Lite上探索更多信息

Couchbase 服务器

这将是下一件大事。

于 2014-02-20T06:22:43.407 回答
0

说到生产,无缝故障转移/恢复都需要保姆
1-Couchbase,没有无缝故障转移/恢复,需要人工干预。
如果不止一个节点丢失,重新平衡需要太多时间,风险太大。

2- 带有分片的 Mongo,从丢失配置服务器中恢复数据,不是一件容易的事

于 2014-02-28T19:35:41.633 回答
0

Adobe在即将发布的Adob​​e Experience Manager(以前称为Day CQ )中使用MongoDB作为核心数据库引擎。

我工作的机构的几个客户正在为大客户的项目使用CouchDB

在我看来,两者都是伟大且可行的数据库。:)

于 2014-05-16T17:06:27.087 回答
-2

这是使用 mongoDB 的生产部署站点列表

  • The New Yorks Times : 在表单构建应用程序中使用它来提交照片。Mongo 缺少模式使生产者能够定义自定义表单字段的任意组合。
  • SourceForge:用于SourceForge首页、项目页面和所有项目的下载页面的后端存储。
  • 比特.ly
  • 易趣
  • IGN:为 IGN 的实时流量分析和 RESTful 内容 API 提供支持。
  • Justin.tv:为 Justin.tv 的内部分析工具提供动力,以实现开箱即用的解决方案无法提供的病毒式传播、用户保留和一般使用统计数据。
  • 后世
  • 直觉
  • Foursquare : 分片的 Mongo 数据库用于foursquare 的大多数数据。
  • Business Insider:从 2008 年初开始使用它。网站的所有数据,包括帖子、评论甚至图像,都存储在 MongoDB 上。
  • Github:用于内部报告应用程序。
  • Examiner:将他们的站点从 Cold Fusion 和 SQL Server 迁移到 Drupal 7 和 MongoDB。
  • Grooveshark:目前每天使用 Mongo 管理超过一百万个独立用户会话。
  • 嗡嗡声
  • 铁饼
  • Evite:用于分析和快速报告。
  • 广场空间
  • Shutterfly:用于Shutterfly 中的各种持久数据存储需求。MongoDB 帮助 Shutterfly 构建了无与伦比的服务,使客户与生活中最重要的人之间建立更深入、更私人的关系。
  • 颠倒
  • 分享这个
  • Mongohq:为 MongoDB 提供托管平台,并使用 MongoDB 作为其服务的后端。我们的托管中心页面提供了有关 MongoHQ 和其他 MongoDB 托管选项的更多信息。

和更多...

摘自: http: //lineofthought.com/tools/mongodb

您也可以在那里查看其他数据库或工具。

于 2014-08-05T06:07:36.710 回答
-6

MongoDB 在对企业的许可方面存在一些问题,我不确定细节,但我们的法律部门没有明确地告诉我们,我们不允许在我们的任何产品中使用 MongoDB。

于 2013-03-23T16:41:59.613 回答