
视觉中国MongoDB分布式存储实践

"视觉中国的MongoDB应用实践分享了在IT行业中,特别是视觉中国,如何采用MongoDB作为数据库解决方案来应对特定挑战的过程。这个实践主要关注于MongoDB在NoSQL环境中的应用,以及它如何解决传统MySQL架构无法满足的需求。"
文章首先提到了视觉中国在2011年时面临的困境,他们原有的架构基于MySQL,采用了Master-Master-Slave的复制模式,并依赖MMM(Multi-Master Replication Manager)进行高可用性保证。然而,随着业务发展,新的需求出现了,包括需要处理多数据源、灵活且不确定的schema、以及频繁更新的动态属性。这些需求超出了MySQL的固有能力,尤其是当面对不确定的字段和属性时。
为了应对这些挑战,视觉中国考虑了两个解决方案:一是将数据存储在MySQL的文本字段中,以JSON格式保存,这样可以获得更高的schema自由度,但查询变得复杂;二是使用关联表,虽然限制了schema的灵活性,但更新操作会导致query缓存失效,影响性能。这两个方案都有其局限性。
在寻求替代方案的过程中,视觉中国发现Memcached虽好,但作为缓存系统,它存在缓存失效和内存限制的问题。因此,他们决定寻找一个能持久化、分布式且性能接近Memcached的键值存储系统(KV)。在评估了包括Flare、Repcached、Redis和TC/TT等多个候选者后,文章暗示了他们最初选择了某个系统,但具体选择的系统在提供的内容中并未明确指出,可能是为了保留悬念或鼓励读者进一步研究。
MongoDB被引入是因为它符合选型条件,拥有良好的PHP和Perl客户端支持,性能接近Memcached,支持分布式集群,文档清晰,并有成功的应用案例。MongoDB的文档数据库特性使其能更好地适应灵活的schema和频繁更新的场景,同时其自动分片功能(auto-sharding)也是吸引人的特点之一,尽管在当时可能还不是视觉中国的主要需求。
这篇分享揭示了视觉中国在面对业务变化时如何从传统的关系型数据库转向NoSQL解决方案,尤其是MongoDB,以实现更高效、灵活的数据管理。这是一次典型的数据库技术迁移案例,对于理解NoSQL数据库在实际业务中的应用和选择具有参考价值。
相关推荐








技术笔记本
- 粉丝: 122
最新资源
- Java基础知识全面解析与类对象特性说明
- 局域网UDP文件传输:VC实现的FilePoster程序
- nhc 2.0:个性化设定,笔记本散热与降噪新体验
- 便捷实用的JavaScript调试工具分享
- ASP.Net博客网站完整源码及数据库下载
- 数据库编程利器:SQL查询条件生成器源码揭秘
- 探索购物商城系统源代码--007的开发
- 深圳大学语音信号处理全面课件
- QQ群登软件:快速自动登录QQ的解决方案
- 全面掌握PHP5编程:中文官方手册详解
- Struts框架下实现静态页面生成的详细代码
- 运算放大器参数与经典电路解析
- VB初学者的自动批量改名工具制作经验
- MATLAB实现数字0-9字符识别教程
- CSS层叠样式表新手入门指南(三个CHM文件)
- JavaScript实现的SkyPlane动画效果
- DELPHI编程高手进阶心路历程
- VB实现的仿Windows计算器源代码解析
- 旋转风筝的VC源程序实现与解析
- 《Visual C++网络编程》源码配盘文件详解
- JavaScript帮助文档与正则表达式PPT内容分享
- VB语言下通过二进制复制文件的方法与应用
- 掌握JSP核心知识点的用户管理经典案例
- 精选AJAX加载动画图片,让等待不再枯燥