信息聚合系统的数据库后台(比如RSS订阅,feedly)应该如何设计?
来源:互联网 发布:服务器提供商 知乎 编辑:程序博客网 时间:2024/05/18 03:07
我想起之前有研究生同学曾经参与一个实习项目,他们用SQL数据库来实现一个RSS订阅聚合系统,结果遇到了扩展性问题:当RSS源达到上千的时候,并发查询性能就已经下降到不可接受。
之后我遇到的实用的信息聚合系统:Google阅读器、以及Feedly。Feedly的官方博客里说它的后台是用HBase来存的。我不禁好奇其数据架构设计到底是怎么做的。
首先,容易想到的是,为每篇博客文章关联RSS源id(博客订阅的rss url地址),及文章id(直接使用url,或者数据库生成列),每篇博客文章需要全局顺序的编号,则每个用户的聚合订阅相对于文章id的一个列表。这样用户拉取新文章相对于对前面全局文章列表的一个selective sorted io copy。
不过既然所有的博客文章都是全局序存储的(按更新或RSS爬虫的爬取时间),其物理存储怎么做水平切分呢?
能想到的最简单的,就是对RSS源id做DHT。然后每次拉取用户订阅的聚合源的更新时,需要做一个并行的Fork(Scatter)-Join(Merge)查询。这样大概能够解决问题了。但是仅仅对RSS源id做DHT的话,还不能解决每个不同的RSS源文章数量不同、数据量不均匀,为使得DHT底层物理存储更均衡,可能还要细化设计。。。
阅读全文
0 0
- 信息聚合系统的数据库后台(比如RSS订阅,feedly)应该如何设计?
- 信息流聚合类系统(如RSS阅读器)中数据同步的架构设计
- magento -- 如何订阅后台带密码的RSS
- Feedly订阅Blog部落格RSS网摘 - Blog透视镜
- 什么是RSS?如何订阅RSS?
- RSS(简易信息聚合
- RSS--简易信息聚合
- 如何订阅没有RSS输出的网站
- sql server如何查看数据库的状态信息(比如表的数量)?
- Feedly:替代 Google Reader 的最佳 RSS 阅读器
- feedly导入OPML文件(批量订阅博客)
- 我订阅的 rss
- Feedly-Fashiolista的feed系统框架学习
- 如何使用9-68.com的RSS订阅及阅读?
- 关于聚合(rss)
- IT信息订阅 RSS源列表
- java获得rss订阅中的信息
- 如何把Feedly、InoReader添加到Firefox订阅列表中去
- MySQL并发导致的脏数据分析
- 单链表的冒泡排序
- Fiddler手机抓包
- 您的文档里包含文档检查器无法删除的个人信息怎么破
- Android截屏幕实现,截取屏幕为bitmap,并保存进手机图库,activity之间传递bitmap对象
- 信息聚合系统的数据库后台(比如RSS订阅,feedly)应该如何设计?
- maven项目发布到tomcat上之后报404错误
- 设计模式之单例模式
- java HashTable 哈希表 及 映射 示例
- MFC绘图知识大全
- Oracle查看用户下、表下有哪些视图
- PAT乙级1047. 编程团体赛(20)
- Hiberante 单向多对一和一对多的关联映射
- 【HTML5学习笔记】29:CSS3渐变效果