我想知道像谷歌阅读器,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的问题:)