我想知道Google Reader,Blogline,techronati等网络应用程序是如何工作的,以及他们一次使用cron作业解析数百万RSS源的技术?
答案 0 :(得分:42)
有一种很多不同的技术......“最差”的技术就是你描述的那种。 (基于时间的投票)。
您需要考虑的第一件事是他们可能并非都在服务器端进行解析。例如,我知道Netvibes正在客户端进行解析(但缓存了服务器上的内容),因此它为它们节省了大量资源。这样,只有当用户向他们询问时,他们才会轮询Feed,因此不需要他们运行某种时间循环。
基于时间的轮询仍然是最常见的解决方案。有很多技术可以确定何时是进行民意调查的最佳时机。基于过去更新的频率,基于支持的用户数...等等。这些人也可以使用旧的XML-RPC ping服务器。
最有效的方法是使用PubSubHubbub,这是Google Reader,Netvibes和其他几千个应用程序(如Digg.com,Twitterfeed,Friendfeed ......)使用的开放协议。它是开放协议,允许Feed发布者直接将Feed的内容推送到订阅应用程序。它非常有效,但要求发布者实施它。偶然的是,所有大型博客平台(Tumblr,Posterous,Wordpress,Blogger,SixApart等)已经实现了它。其他Feed发布应用程序(如feedburner,Gowalla等)也实现了它。如果您确实发布了Feed,我会鼓励加入这个群体,如果您计划消费一些,请同时实施该备份。
最后一个解决方案是使用第三方应用程序执行此数据收集(使用上述所有技术)并在这些Feed实际拥有新内容时ping您。我创建了一个:Superfeedr,我相信我们做得很好。我们还对内容进行了规范化,并做了一些其他事情来帮助您以最简单和最便宜的方式使用Feed数据(轮询可能非常昂贵)。此外,我们使用完全相同的PubSubHubbub协议来推送来自任何Feed的内容,这使我们的用户除了订阅可用的集线器之外,还可以非常简单地使用我们的服务。
此外,我应该补充一点,我能够快速回复您的问题,因为我使用了一个应用程序,将标记为RSS的问题的Feed内容推送给我:)