首页 文章

有没有使用NoSQL数据库的电子商务网站[关闭]

提问于
浏览
72

我最近读过很多关于'NoSQL'数据库的信息,比如CouchDB,MongoDB等 . 我见过的大部分网站主要是基于文本的网站,如纽约时报和Source Forge .

我想知道你是否可以将这个应用到支付是一个巨大问题的网站 . 我在考虑以下问题:

  • 您如何保护数据安全?

  • 这些系统是否提供简单的备份/恢复机制

  • 如何处理事务提交/回滚

我已阅读以下涵盖某些方面的文章:

在这些帖子中,交易的方面如果涵盖 . 但是,不包括安全性和备份的问题 . 有人可以对这个问题有所了解吗?

如果可能的话,有没有人知道一些已成功实现基于文档的数据库的电子商务网站 .

8 回答

  • 18

    编辑:2013年3月

    我最初发布了一篇关于我在MongoDB和电子商务上写的文章的链接,但我不再同意我在那里提出的所有观点 . 我仍然相信MongoDB的文档数据模型可以很好地用于电子商务站点的目录管理方面,也可以用于购物车 . 但显然交易很重要,MongoDB不会给你这些 . 下一个最高票数的这个问题的答案使得很多观点值得考虑 .

    以下是感兴趣的人的原始文章:

    http://kylebanker.com/blog/2010/04/30/mongodb-and-ecommerce/(archive.org链接)

  • 53

    使RDBMS如此缓慢的开销保证了原子性,一致性,隔离性,持久性,也被称为ACID . 其中一些属性对于处理金钱的应用程序非常关键 . 当灯熄灭时,你不想丢失一个订单 .

    NoSQL数据库通常会牺牲部分或全部ACID属性,以换取严重降低的开销 . 对于许多应用来说,这很好 - 如果灯灭了就会丢失一些“挖掘”,这没什么大不了的 .

    对于电子商务网站,您需要问问自己您真正需要什么 .

    • 你真的需要一个RDBMS无法提供的性能水平吗?

    • 您是否需要RDBMS提供的可靠性?

    老实说,#2的答案可能是“肯定”,这排除了大多数NoSQL解决方案 . 除非你处理与amazon.com相当的流量水平,否则RDBM即使在适度的硬件上也可能很好地满足你的性能需求,特别是如果你将自己局限于简单的查询,并正确索引 . 这使得答案#1“不” .

    但是,您可以考虑将RDBMS用于事务数据,并将NoSQL数据库用于非关键数据,例如产品页面,用户评论等 . 但是,您不能将NoSQL数据库加入到您的RDBMS中 . 这可能会导致不必要的复杂程度 .

    最后,如果RDBMS提供了必须具备可靠性的功能,并且它对于您将遇到的各种负载执行可接受,则RDBMS可能是最好的选择 .

  • 68

    处理财务信息是SQL真正适合工作的领域之一 . 大多数NOSQL系统旨在通过接受更高的数据丢失或不一致风险来提高可扩展性 . 他们往往在所有记录上运行报告的能力有限,因为在典型的大型网站上,您只需要索引中的足够数据来查找和显示单个记录 - 其余部分可能完全无法访问,直到您知道您正在查找的记录为止对于 .

    处理资金时,任何数据不一致都是一个大问题,如果你需要比单个sql server更多的可扩展性,你就可以获得足够的资金来支付更高的扩展成本 . 此外,如果你不使用sql,你可以从sql中获得特别报告 - 几乎所有关于销售历史记录的信息都很容易从sql获取,但可能需要来自基于对象的复杂自定义代码商店 .

  • 8

    我认为NoSQL数据库的安全性与关系数据库的安全性不同 . 最后,安全性是数据实际存储方式的正交问题 . 此外,从网络角度来看,除了您的业务层服务器之外,您不允许从任何其他设备访问数据库 .

    至于备份,我知道允许的大多数NoSQL数据库对于热备份,就像常规数据库一样 .

    真正的问题,IMO,你是否能忍受NoSQL数据库对你的限制 - 特别是普遍缺乏临时查询 . 例如,如果您想知道所有购买过产品的人"X"那么您必须从第一天开始构建数据访问层的计数器(或者对每个过去的事务运行非常昂贵的序列查找) . 在常规SQL数据库中,您只需添加一个索引并执行查询,如果它与关系数据库相关,则可以添加一个索引 .

    我认为,当您可以提前规划架构和使用模式,以及偶尔重新扫描记录以添加一些新字段或指标时,这是有道理的 . 但对于一个电子商务网站,我认为即席查询是一个非常有 Value 的功能 . 当然,为什么你不能亲自选择一个带有memcached的关系型数据库来增加性能,但是... [...]

  • 6

    你们应该看看这个:

    Replication Acknowledgement via getlasterror

    MongoDB即将提供持久写入 . 我认为这是人们讨论这个话题的主要问题w.r.t.钱 . 由于嵌套的文档功能,事务部分不太重要 .

  • 2

    Gilt.com使用Voldemort在巨大负载下处理篮子/库存 . 有关详细信息,请参阅伦敦QCon 2010的演示文稿 - http://www.infoq.com/presentations/Project-Voldemort-at-Gilt-Groupe

    我还要重申一个事实,“NoSQL”并不意味着“没有SQL”,而是“不仅仅是SQL”,并且不是在寻找任何技术来完成任何其他技术的完整翻录/替换,而是应该看到最好的工作的工具 . NoSQL数据存储不会构建非常好的数据仓库,并且可能不适合存储用户事务,但它们在某些特定领域非常好 - 请参阅上面的Gilt Groupe示例 .

    另一个突出的例子是BBC主页 - 不是交易性的,但仍然很有趣 . 他们使用CouchDB来存储用户首选项 . 不幸的是,它们似乎已经在负载下崩溃了 .

    [更新:我还可以确认ASOS Marketplace使用了一些NoSQL组件 - http://bagcheck.com/bag/9206-asos-marketplace-technology]

  • 5

    这里有一堆使用MongoDB的商业Web应用程序,这是一个比较流行的NoSQL数据库 .

    http://www.mongodb.org/display/DOCS/Production+Deployments

    这不完全是电子商务网站本身,但许多是企业所依赖的NoSQL支持的方面 . 我可以确认ChatPast完全在MongoDB上完成 . 我们进行电子商务,但由于安全/处理问题,而不是害怕在MongoDB上进行商务活动,因此它已被卸载到Chargify .

  • 1

    是的,http://myestoreapp.com将MongoDB用于一切 . 看看这个;随意拍摄任何问题 .

相关问题