新浪微博,腾讯微博另一种实现方式--pull
来源:互联网 发布:xampp怎么配置mysql 编辑:程序博客网 时间:2024/06/09 23:52
设计要点:
1)DB只作为持久化容器,一切操作在逻辑层完成
2)异步,前端的请求只要在中间server上完成就好,后续的持久化由LazyWriter完成(定时)
3)可以分布式实现,中间逻辑的read和write可是分号段,以适应批量操作,map/reduce
4)尽量做到全量cache,尤其是index
流程说明:
1)在A产生Feed的时候,更新index中A节点的最后更新时间,并标记Feed_id(对于微博来说没有必要做摘要);然后将content等详细记录写入元数据存储空间
2)B(A的粉丝)登录拉取最新Feed时,由于数量限制(首页有显示空间限制,一般都要做成page_index+page_count)只能拉取所有关注对象中最新的N条Feed,这时先通过批量查询对B的所有关注对象最新Feed做一个排序,因为完全在内存中实现,而且可以map/reduce,所以时间消耗很少,在生成了最新的Feed列表后,直接批量向元数据存储空间拉取完成信息
pull模式的实时性比push模式要好,但是也会遇到关注对象太多时拉取慢的情况,无论pull还是push,最后都可以通过cache index实现快速索引的生成,通过map/reduce实现批量请求的分割与快速处理。
作为互联网应用来说,保证最终一致性才是最重要的,另外一点,对逻辑数据分层次处理,做优先级划分
6月1日更新:
本文是pull模式,关于微博的push模式请参见 http://blog.csdn.net/cleanfield/archive/2011/04/21/6339428.aspx
- 新浪微博,腾讯微博另一种实现方式--pull
- 新浪微博页面向下pull实现
- 新浪微博,腾讯微博mysql数据库主表猜想-pull
- Android分享到腾讯微博,信息,新浪微博等等,的实现方式
- Android Intent分享到腾讯微博,信息,新浪微博等等,的实现方式
- Android 分享到腾讯微博,新浪微博,信息,等等的实现方式
- 新浪和腾讯微博教程(二)
- 腾讯微博为何拼不过新浪?
- 腾讯微博为何干不过新浪?
- 新浪腾讯微博转发 js代码
- 分享帖子到腾讯、新浪微博
- 新浪微博,腾讯微博,腾讯QQ登录
- 腾讯空间、新浪微博、腾讯微博登录接口
- 腾讯空间、新浪微博、腾讯微博分享接口
- 腾讯空间、新浪微博、腾讯微博分享接口
- Android之PULL解析XMl文件-新浪微博效果
- 实现新浪微博@@@
- C#实现仿新浪微博 BigPipe 数据加载方式
- zookeeper实现一个配置项的修改的小案例
- ajax同步、异步问题
- 新浪微博,腾讯微博mysql数据库主表猜想
- QT的字符编码转换 .
- Android OTA 升级(二): 脚本 ota_from_target_files
- 新浪微博,腾讯微博另一种实现方式--pull
- 在APK里 截获 系统按键 并处理
- Win7下怎么同时打开多个独立的Excel窗口
- vs2012的性能分析
- Tomcat6源代码启动时报错java.lang.ClassNotFoundException: listeners.ContextListener
- Ubuntu上安装Apache、MySql和PHP
- 用状态机实现XML解析器 - C++环境
- Java性能优化技巧集锦 .
- Statement和PreparedStatement之间的区别