RSS阅读器的工作原理(netvibes,谷歌阅读器......)

ani*_*aba 21 xml rss feeds

我想知道像谷歌阅读器,Blogline,techronati这样的网络应用程序是如何运作的,以及他们使用什么技术来同时使用cron作业解析数百万个RSS源?

Jul*_*oux 44

很多不同的技术......"最差"的技术是你描述的技术.(基于时间的投票).

您需要考虑的第一件事是他们可能并非都在服务器端进行解析.例如,我知道Netvibes正在客户端进行解析(但缓存了服务器上的内容),因此它为它们节省了大量资源.这样,只有当用户向他们询问时,他们才会轮询Feed,因此他们不需要运行某种时间循环.

不幸的是,基于时间的轮询仍然是最常见的解决方案.有很多技术可以确定何时是进行民意调查的最佳时机.基于过去更新的频率,基于支持的用户数...等等.这些人也可以使用旧的XML-RPC ping服务器.

最有效的技术是使用PubSubHubbub,它是Google Reader,Netvibes和其他几千个应用程序(如Digg.com,Twitterfeed,Friendfeed ......)使用的开放协议.这是一个开放协议,允许Feed发布者直接将Feed的内容推送到订阅应用程序.它非常有效,但要求发布者实施它.偶然的是,所有大型博客平台(Tumblr,Posterous,Wordpress,Blogger,SixApart等)都实现了它.其他Feed发布应用程序(如feedburner,Gowalla等)也实现了它.如果您确实发布了Feed,我会鼓励加入这一群体,如果您计划消费一些,请同时实施一个susbcriber方面.

最后一个解决方案是使用第三方应用程序执行此数据收集(使用上述所有技术)并在这些Feed实际拥有新内容时ping您.我创建了一个:Superfeedr,我相信我们做得很好.我们还对内容进行了规范化,并做了一些其他事情来帮助您以最简单和最便宜的方式使用Feed数据(轮询可能非常昂贵).此外,我们使用完全相同的PubSubHubbub协议来推送来自任何Feed的内容,这使得我们的用户除了订阅可用的集线器之外,还可以非常简单地使用我们的服务.

此外,我应该补充一点,我能够快速回复您的问题,因为我使用的应用程序将推送我的内容提取标记为RSS的问题:)

  • 即使在轮询供稿时,Google阅读器也会进行有趣的优化:"Google阅读器会检查您的订阅是否每小时更新一次.对于拥有少量订阅者的Feed,更新可能会少一些." [参考](http://google.com/support/reader/bin/answer.py?hl=zh_CN&answer=70642)这是官方声明,但我看到一些Feed更频繁的更新(每5分钟?) (Gizmodo,Slashdot).对于我是唯一订阅者的供稿,通常每天只能看到1或2个更新.这被其他人证实很好,但这不是官方说的. (3认同)