当前位置:  NOSQL>mongodb

mongodb的典型使用场景

 
分享到:
    发布时间:2017-2-21  


    本文导语: mongodb的典型使用场景关于mongodb的典型使用场景主要由其核心3大特性决定,灵活文档模型 + 高可用复制集 + 可扩展分片集群。无意发现, 优酷公司用它来存储评论信息 我供职的公司使用它构建垂直小型电子商务平台持久层 ...

mongodb的典型使用场景


关于mongodb的典型使用场景主要由其核心3大特性决定,灵活文档模型 + 高可用复制集 + 可扩展分片集群


mongodb的典型使用场景 无意发现, 优酷公司用它来存储评论信息 我供职的公司使用它构建垂直小型电子商务平台持久层 其他案例欢迎补充 感觉除了银行,高并发的交易等大型系统需要传统 rdbms事务支持 总之如果你需要高性能的存储服务,那么推荐 MongoDB, 比如用于存储大型…

em,  无意发现, 优酷公司用它来存储评论信息
mongodb的典型使用场景

感觉除了银行,高并发的交易等大型系统需要传统 rdbms 的事务支持
总之如果你需要高性能的存储服务,那么推荐 MongoDB,


当前版本Ceilometer模块采用的后端存储为Mongodb(一种Nosql的文档数据库)。

Mongodb有多种部署形态具体使用那种部署形态。


  • MasterSlave Replication(主备单活)

    • 当前mongodb的官网已明确不推荐使用此模式

    • 优点:简洁

    • 缺点:可靠性和及其读写性能较差

    • 备注:之前公司使用此模式昨晚小场景的poc演示使用

  • ReplicaSet(集群模式)

    • 一主两备


只有primary(主)节点可以进行写操作,即只有主节点可以接受客户端driver写请求。然后oplog功能再异步将数据拷贝至各个备节点。各个备节点可水平扩展。各个备节可开启读取功能(默认关闭)主节点故障后,集群会从备节点选举出新的主节点。如下:

  • 优点:较于有仲裁节点的情况,多了一个备节点,可以多一份文档备份,增加了可靠性。

  • 缺点:小概率情况下,主节点挂掉后,各备节点公平竞争导致选举失败,从而似的集群无可写节点。

  • 备注:之前公司采用此种模式


  • 一主一备一仲裁(**当前版本采用的模式**)


节点个数为偶数时,受限于选举算法,为增加选举的可靠性,指导文档建议增加一个仲裁节点,见上图。优点:增加了主节点挂掉后的选举成功的可靠性。缺点:当前模式下浪费了一个节点(192.168.1.43)备注:当前模式下没有开启备节点的读取功能,建议打开。已验证:(1)往主节点插入数据,能从备节点查到之前插入的数据(2)停掉主节点,备节点能变成主节点提供服务。(3)恢复主节点,备节点也能恢复其备的角色,而不是继续充当主的角色

  • 主要应对大数据量及其高吞吐(highthroughput)场景,此模式下mongodb提供的自动分片功能。

  • 优点:在上述场景下会一定程度改善mogodb的性能问题

  • 缺点:数据量不大的情况下,性能较集群模式差。

地理搜索、零散文件、对事务无要求的数据。正在用它替代mysql


mongo使用场景总结

    mongodb的主要目标是在键/值存储方式(提供了高性能和高度伸缩性)以及传统的RDBMS系统(丰富的功能)架起一座桥梁,集两者的优

势于一身。mongo适用于以下场景:

  1.网站数据:mongo非常适合实时的插入,更新与查询,并具备网站实时数据存储所需的复制及高度伸缩性。

  2.缓存:由于性能很高,mongo也适合作为信息基础设施的缓存层。在系统重启之后,由mongo搭建持久化缓存可以避免下层的数据源过载。

  3.大尺寸、低价值的数据:使用传统的关系数据库存储一些数据时可能会比较贵,在此之前,很多程序员往往会选择传统的文件进行存储

  4.高伸缩性的场景:mongo非常适合由数十或者数百台服务器组成的数据库。

  5.用于对象JSON数据的存储:mongo的BSON数据格式非常适合文档格式化的存储及查询。

  6.重要数据:mysql,一般数据:mongodb,临时数据:memcache

  7.对于关系数据表而言,mongodb是提供了一个更快速的视图view;而对于PHP程序而言,mongodb可以作为一个持久化的数组来使用,并且这个持久化的数组还可以支持排序、条件、限制等功能。

 8.将mongodb代替mysql的部分功能,主要一个思考点就是:把mongodb当作mysql的一个view(视图),view是将表数据整合业务数据的关键。比如说对原始数据进行报表,那么就要先把原始数据统计生成view,在对view进行查询和报表。从这个意义上,mongodb提供了一个更快速,更使用的view

mongo不适合的场景:

  a.高度事物性的系统:例如银行或会计系统。传统的关系型数据库目前还是更适用于需要大量原子性复杂事务的应用程序。

  b.传统的商业智能应用:针对特定问题的BI数据库会对产生高度优化的查询方式。对于此类应用,数据仓库可能是更合适的选择。

  c.需要SQL的问题

  D.重要数据,关系数据

    您可能感兴趣的文章:

  • 本站(WWW.169IT.COM)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.169IT.COM)站内文章除注明原创外,均为转载,整理或搜集自网络.欢迎任何形式的转载,转载请注明出处.
    转载请注明:文章转载自:[169IT-IT技术资讯]
    本文标题:mongodb的典型使用场景
相关文章推荐:


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2017,169IT.COM,E-mail:www_169it_com#163.com(请将#改为@)

浙ICP备11055608号