mongodb开发应用实践

mongodb开发应用实践

ID:36667625

大小:2.38 MB

页数:70页

时间:2019-05-13

mongodb开发应用实践_第1页
mongodb开发应用实践_第2页
mongodb开发应用实践_第3页
mongodb开发应用实践_第4页
mongodb开发应用实践_第5页
资源描述:

《mongodb开发应用实践》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、QConbeijing2011吃蟹视觉中国的MongoDB应用实践插图:http://czone.chinavisual.com/art/4b4501548f47e8ef73699a0c.html11年4月1日星期五1About.me•潘凡(nightsailer)视觉中国•@nightsailer//twitter,sina,linkedin,github...•nightsailer#gmail.com•http://nightsailer.com/11年4月1日星期五2为啥用MongoDB赶NoSQL时髦?Auto-shard等激动人心的特性?•No

2、!08年,还都是浮云最初的想法是寻找一个可靠的分布式K/V解决MySQL的问题11年4月1日星期五3原来的架构App•MySQL(Percona),MMMMyMaster-Master-Slavessql(MasteHA:MMMr-•MastMysql(M1)Mysql(M2)er)SlaveSlave11年4月1日星期五4新要求•能够适应多数据源•需要灵活,不确定的schema•不同模型的字段不定,属性不定•属性更新频繁•服务器等硬件资源有限11年4月1日星期五5如何解决?原有MySQL的方案*使用文本字段,JSON存储•schema自由度高

3、•更新容易,直接检索困难*使用关联表•schema自由度有限,类型控制•更新频繁,query缓存失效11年4月1日星期五6新思路App   MMM/vdb11KVKV1KV2Mysql(M1)Mysql(M2)SlaveSlave11年4月1日星期五7新思路继续使用Memcached?•缓存失效,内存不足决定:寻找Memcached替代品•能够持久化的分布式KV11年4月1日星期五8选型条件•同时有PHP/Perl的良好客户端支持•性能和Memcached相差不要太多•支持分布式集群•低碳环保,节约资源•文档清晰,

4、有成功案例11年4月1日星期五9一些候选者•Flare•Repcached•Redis•TC/TT11年4月1日星期五10最初的选择选中Flare•内置cluster看起来很美好,可靠性有保证•使用Memcached协议,现有改动小11年4月1日星期五11代价项目开发1个月后•官方更新显示似乎并非如此可靠•水土不服:•个人能力有限,无法解决一些灵异事件•没有开发者社区•不懂日文;-(11年4月1日星期五12新的候选者•Cassandra•技术实力无法支撑,用不起•CouchDB•灵活,但性能口碑似乎不佳11年4月1日星期五13重新选择MongoDB•读写性

5、能中庸,比Redis逊色•Document模型令人满意•内置操作没有Redis惊喜,基本够用•MySQL类似的集群机制,上手方便•某些MySQL的优化部署经验可以复用11年4月1日星期五14胆子再大一点MySQL+MongoDB?•多余:很多MySQL的操作MongoDB均可实现•同时维护MySQL<=>MongoDB的数据,代码逻辑有些复杂•人员流失,培训新人表示鸭梨大11年4月1日星期五15胆子再大一点能否彻底抛弃MySQL•Transaction?可以没有•Joins?原本少用,可以没有•数据一致性:不太高11年4月1日星期五16胆子再大一点好吧,试

6、试•拿一个旧项目开刀•1人1个星期完成90%代码移植•原有35个table=>10collection•开发过程很happy!11年4月1日星期五17MongoDB,就是它了一举两得的加分项:GridFS•简单,符合我们的要求•无需再考虑分布文件系统•放弃了原来的MogileFS,减轻运维压力11年4月1日星期五18MongoDB,就是它了选对了•SourceForge等一些大站应用增强信心•分享的信息逐渐丰富•10gen核心团队在mailing-list快速响应,有问必答•NoSQL开始受到追捧,MongoDB的口碑良好11年4月1日星期五19应用案例1

7、comments:{•评论_id:ObjectId(‘xxx’),art_id:2,content:‘呼呼真是...’,replied_on:12233created_on:12222replies:[{_id:ObjectId(‘xxx’),content:‘哈哈,谢了...’,replies:[]}]}11年4月1日星期五20应用案例2用户动态/新鲜事:•关注的用户的动态•个人作品的新动态•关注的作品的新动态(评论过/收藏过/打分过...)•可取消对特定事件的订阅11年4月1日星期五21应用案例2推送模式的实现•db.activity_stream.f

8、eed(订阅事件)•db.activity_stream.user

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。