nosql数据库是否适合在线资金交易管理

Aka*_*007 12 nosql

我打算使用nosql Database作为我的Web产品的后端.我有一些非常基本的疑虑.

1)我在博客中读到,Nosql数据库不太适合在线货币交易,即数据完整性最重要.(我的产品有在线货币交易)

2)每天大约有1000个用户.

3)可用性是否有问题?

能否请说明与Nosql数据库相关的任何利弊.我打算使用MongoDb.这可以满足我上面的查询.

我的问题是清楚的还是我需要提供更多信息?请评论,我将进行必要的更改.

tol*_*ius 30

NoSQL数据库可以解决几个问题,主要是:

  • (嗡嗡声)BigData =>认为TB,PB等.

  • 使用分布式系统 /数据集=>假设您有42种产品,因此其中13种将存在芝加哥数据中心,21种位于纽约,另外21种位于日本某处,但是一旦您查询了所有42种产品,您就不需要知道他们所在的位置:NoSQL DB会.这也允许更多的脑力(服务器)来解决硬计算问题[似乎不适合你的用例,但这是一个有趣的事情要注意]

  • 分区 =>让您的数据库易于分发,除了日本的酷8产品之外,还允许轻松的数据复制,因此这些42个产品将被复制3倍,这意味着您将拥有3个数据库每个产品的副本.因此,如果出现故障,没问题=>这里有可用的副本.这就是NoSQL数据库与RDBMS实际相比的地方.当然,你可以对Oracle/MySQL/PostgreSQL等进行分片,分区和集群.但是这是一个更复杂的过程,对于你雇用的大多数人来说通常是一个维护问题.

(对你的问题)

  • 每天大约有1000个用户

    每天1000个用户的数量非常低,除非你选择昨天凌晨3点写的NoSQL解决方案作为证明概念,这里应该不用担心.但是如果你成功了,并且在几个月内将拥有100,000,000名用户,那么NoSQL将更容易扩展.

  • 可用性是一个问题吗?

    可靠的NoSQL解决方案允许您指定一些名为a的内容quorum:" 在认为成功之前必须响应读取或写入请求的副本数量 ".一些解决方案还会执行以下操作hinted handoff:" 相邻节点临时接管故障节点的存储操作 ".通常,您应该能够根据您的要求控制可用性.

(来自你的评论)

  • 我们正计划扩大规模.并且不希望数据库成为约束

Expanding是一个非常相对的术语."金融行业相当发展",他们仍然主要使用RDBMS进行日常运营.Facebook使用MySQL.我做过工作的主要银行使用的是Oracle/MySQL/PostgreSQL/DB2 /等等.只有部分银行使用NoSQL,但不是一直需要100%一致性的数据.甚至Facebook也只将Cassandra用于"收件箱搜索"等内容.但是,如果通过扩展意味着更多数据和更多用户(请求,连接等),NoSQL将更容易扩展.同样,这并不意味着您无法扩展RDBMS,它只是更繁琐/复杂.

  • 根据我的阅读,在没有SQL数据库的情况下,我们不必考虑很多架构

根据我的经验,如果我构建一个任何好的系统,我总是要考虑架构.NoSQL数据库允许您对持久化的数据更加灵活,但这并不意味着您应该更少考虑架构.可以考虑将数据编入索引,或者将数据分片到多个集群,甚至是可能向客户端公开的合同/接口等.

  • NoSQL数据库所需的维护工作量非常少

我不会说这是真实的一般,除非我们在谈论BigData.以PostgreSQL为例.它是一个非常棒的软件,很容易使用和维护.另加上RDBMS世界=>让人觉得很多更舒服SQL.出于这个原因,例如,Cassandra的人CQL在0.8中发布,这是一个非常有限的SQL子集.类似条款maintenance也应该站在肩膀等术语来承担Talent,Knowledge,Expertise.例如,如果你使用Cassandra,那个女孩是一个非常"高维护"的人,但不是那些来自DataStax的男人Expertise,但是你必须付出代价.

你的主要问题

  • 我在博客中读到NoSQL数据库对于在线货币交易不太好,即数据完整性最重要的地方.(我的产品有在线货币交易)

如果不真正了解您的产品是什么,很难说NoSQL数据库是否适合.如果该产品的主要目标是"在线资金交易",那么我建议不要使用 NoSQL数据库(至少今天是2011年).如果"在线资金交易"只是其中一项要求,而不是产品的"核心",取决于"核心"是什么,您绝对可以尝试使用NoSQL数据库,例如使用外部服务来处理(例如Google Checkout等.)您的交易具有保证的一致性.

作为技术说明,如果您尝试解决的问题得益于通过分发解决,我建议使用Erlang编写的数据库(例如Riak,CouchDB等),因为Erlang作为一种语言已经成功解决了大部分分布式问题事情几十年了.