MongoDB:视觉中国应对数据挑战与实践
需积分: 10 9 浏览量
更新于2024-07-19
收藏 2.38MB PDF 举报
MongoDB开发应用实践分享
在2011年的QCon Beijing会议上,潘凡(@nightsailer)作为视觉中国的代表,探讨了他们如何从MySQL的复杂架构转向MongoDB的原因和过程。MongoDB的选择并非单纯追求潮流,而是源于对可靠分布式键值存储的需求,以解决MySQL在高并发、灵活Schema和多数据源环境下的局限性。
原有的架构基于MySQL(采用Percona版本),采用了Master-Master-Master(MMM)模式,以实现高可用性。然而,这种架构在处理动态变化的Schema、频繁的属性更新以及硬件资源受限的情况下显得力不从心。原有的解决方案尝试通过文本字段或JSON存储来增加schema的灵活性,但查询效率较低,且更新操作可能影响缓存。
面对这些挑战,团队考虑了是否继续使用Memcached作为缓存层,但由于其内存依赖性和持久化需求,他们开始寻找一个能替代Memcached并满足以下条件的解决方案:
1. 支持多种编程语言,如PHP和Perl,便于团队协作。
2. 性能接近Memcached,能满足实时应用需求。
3. 具备分布式集群能力,扩展性强。
4. 节能环保,减少资源消耗。
5. 文档完善,有成功的实际部署案例。
在候选选项中,包括Flare、Repcached、Redis和TC/TT。经过评估,MongoDB最终脱颖而出。MongoDB以其文档数据库的特性,允许动态Schema,支持嵌入式文档和集合结构,非常适合处理非结构化数据和频繁的属性更新。此外,MongoDB的分布式特性可以自动分片,解决了单点性能瓶颈问题,同时其API设计和社区活跃使得它满足了团队的需求。
总结来说,视觉中国的MongoDB应用实践是一个典型的从传统关系型数据库向NoSQL数据库转型的案例,MongoDB以其强大的适应性、灵活性和性能成为了解决复杂业务场景的理想选择。通过这个过程,团队不仅解决了当时的业务需求,也为未来的可扩展性和技术演进奠定了坚实基础。
2021-10-14 上传
2021-04-29 上传
2011-05-07 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
贾诩是也
- 粉丝: 611
- 资源: 47
最新资源
- SVR:简单向量回归-Udemy
- AquariumHoodLEDController
- Code,java论坛源码,java消息队列订单
- TRIDIEGS:求对称三对角矩阵的特征向量的特征值。-matlab开发
- get_html_source_gui:获取网页源代码GUI代码与重组程序
- json-builder:json-parser的序列化副本
- 参考资料-附件1-9-补充协议-新增.zip
- 共享计时器:一种Web应用程序,您可以在其中创建并与其他人共享计时器。 建立在React Hooks和Firebase之上
- spotify_battle
- maistra-test-tool:在OpenShift上运行maistra任务的测试工具
- mobi_silicon
- CrawlArticle:基于文字密度的新闻正文提取模块,兼容python2和python3,替换新闻网址或网页开源即可返回标题,发布时间和正文内容
- uu,java源码学习,springboot的源码是java
- regexp_parser:Ruby的正则表达式解析器库
- Get15
- Mary Poppins Search-crx插件