MongoDB最佳实践畅谈-计费系统

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: 版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 https://blog.csdn.net/chszs/article/details/20536623 MongoDB最佳实践畅谈-计费系统作者:chszs,转载需注明。
版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 https://blog.csdn.net/chszs/article/details/20536623

MongoDB最佳实践畅谈-计费系统

作者:chszs,转载需注明。博客主页:http://blog.csdn.net/chszs

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是一个伟大的数据库,你必须把它使用在合适的场景才能保证你获得市场竞争的优势。

相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
目录
相关文章
|
2月前
|
运维 NoSQL BI
简道云搭载阿里云MongoDB数据库,帮助数以万计企业重构业务系统
通过与MongoDB和阿里云团队的合作,让简道云少走了弯路,保障了线上服务的长期稳定运行,提高了吞吐效率,并相应降低了线上运行成本
|
4月前
|
存储 NoSQL JavaScript
MongoDB存储过程实战:聚合框架、脚本、最佳实践,一文全掌握!
【8月更文挑战第24天】MongoDB是一款备受欢迎的文档型NoSQL数据库,以灵活的数据模型和强大功能著称。尽管其存储过程支持不如传统关系型数据库,本文深入探讨了MongoDB在此方面的最佳实践。包括利用聚合框架处理复杂业务逻辑、封装业务逻辑提高复用性、运用JavaScript脚本实现类似存储过程的功能以及考虑集成其他工具提升数据处理能力。通过示例代码展示如何创建订单处理集合并定义验证规则,虽未直接实现存储过程,但有效地演示了如何借助JavaScript脚本处理业务逻辑,为开发者提供更多实用指导。
82 2
|
5月前
|
JSON NoSQL MongoDB
mongodb 系统命令总结
mongodb 系统命令总结
41 0
|
6月前
|
NoSQL Unix MongoDB
MongoDB-系统时钟跳变引发的风波
MongoDB-系统时钟跳变引发的风波
|
7月前
|
存储 监控 NoSQL
【MongoDB 专栏】MongoDB 分片策略与最佳实践
【5月更文挑战第10天】MongoDB 分片是应对大数据量的扩展策略,涉及哈希和范围分片两种策略。分片架构包含分片服务器、配置服务器和路由服务器。最佳实践包括选择合适分片键、监控调整、避免热点数据等。注意数据分布不均和跨分片查询的挑战。通过实例展示了如何在电商场景中应用分片。文章旨在帮助理解并优化 MongoDB 分片使用。
275 3
【MongoDB 专栏】MongoDB 分片策略与最佳实践
|
5月前
|
存储 NoSQL Java
使用MongoDB实现NoSQL数据库的最佳实践
使用MongoDB实现NoSQL数据库的最佳实践
|
6月前
|
NoSQL 安全 MongoDB
精准数据清理:掌握 MongoDB 删除集合的方法与最佳实践
精准数据清理:掌握 MongoDB 删除集合的方法与最佳实践
224 0
|
6月前
|
存储 NoSQL 数据管理
MongoDB关系处理:优化数据管理、提升性能的最佳实践
MongoDB关系处理:优化数据管理、提升性能的最佳实践
|
6月前
|
存储 NoSQL MongoDB
深入解析 MongoDB 与 Python:基本语法、实用示例与最佳实践
深入解析 MongoDB 与 Python:基本语法、实用示例与最佳实践
107 0
|
6月前
|
监控 NoSQL MongoDB
深入MongoDB监控:全面解析命令、实用示例与最佳实践
深入MongoDB监控:全面解析命令、实用示例与最佳实践
191 0