设为首页 收藏本站
查看: 1215|回复: 0

[经验分享] MongoDB最佳实践畅谈-计费系统

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-3-7 15:09:28 | 显示全部楼层 |阅读模式
MongoDB的最佳实践,在以下情况,你应该使用MongoDB。
1)高写负载的场景
MongoDB默认更适合高写入而不是事务安全。如果你需要为每个客户端载入巨量的、低价值的数据,那么MongoDB很适合。假如你需要载入上百万的交易记录,那么这需要额外的安全措施,MongoDB不适合。
2)在不可靠的环境需要高可用场景
设置复制集(服务器做主从集群)很容易,速度也很快。此外,从某个节点(或数据中心)做故障恢复是实时的、安全的、自动的。
3)数据增长巨大,能把数据分片的场景
数据库做伸缩是很困难的(单个MySQL表在数据量达到5GB~10GB时,它的性能会显著下降)。如果你需要对数据库进行分区和分片,MongoDB内建了这些机制,完成这些工作很简单。
4)数据是基于位置的场景
MongoDB内建了支持空间的功能,因此从指定的位置查找相关的数据是非常快速和准确的。
5)数据集很大(从1GB起步)以及数据的模式是不稳定的场景
在一些关系数据库中要增加新的列字段,数据库会锁定整个表,或者或让主数据库服务器的负载和性能下降。通常,当数据表的尺寸超过1GB后,这种情况性能下降的更厉害。而MongoDB是无模式的,增加新的字段,对已有的行(称为文档)无影响。其次是当应用程序改变后,MongoDB不需要DBA来修改数据模式。
6)无DBA的场景
如果你的公司没有专职的DBA,你也不需要对数据做联合或标准化,那么你可以考虑MongoDB。MongoDB在持久化方面做到很好,类数据可以被序列化成JSON数据,并加以存储。
注意:请遵循MongoDB的最佳实践,以避免一些陷阱。
真实案例:计费
国外的奥弗?科恩发布了一个号称下一代的开源计费解决方案,此方案利用MongoDB作为其后端存储。此计费系统已经运行于以色列发展最快的移动运营商的产品环境,每个月能处理超过500M的呼叫数据记录CDR。奥弗?科恩介绍了它是怎样利用MongoDB的优势的:
1)无模式的设计
无模式设计可以快速添加新呼叫数据记录类型到系统中。它让BillRun保持数据存储的通用性。
2)可伸缩
BillRun的产品网站目前已经在单个数据表中管理了几个TB的数据,w/o可通过添加新字段进行限制。
3)快速的复制集
复制集能够满足易于构建多数据中心DRP和高可用HA解决方案的规则。
4)分片
分片使的线性扩容很清晰可控,不至于出现超出预算的情况。
5)每秒插入的呼叫数据记录CDR的数量超过2,000次,MongoDB的架构非常适合高写入场景。你还可以保证带findAndModify(通常比较慢)和两阶段提交的事务的处理。
6)开发者可以面向查询,使得能够写出优雅的查询。
7)基于位置
基于位置可用于分析用户的使用情况,以此决定在何处继续建设蜂窝基础设施。
最后,MongoDB是一个伟大的数据库,你必须把它使用在合适的场景才能保证你获得市场竞争的优势。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-15609-1-1.html 上篇帖子: Mongodb调研 下篇帖子: MongoDB GridFS最佳应用概述
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表