我想知道Google阅读器,Logline,technorati等Web应用程序如何工作,以及它们遵循什么技术来一次使用cron作业来解析数百万个RSS feed?

最佳答案

有很多不同的技术……“最糟糕”的一种是您描述的技术。 (基于时间的轮询)。

您需要考虑的第一件事是它们可能不会全部在服务器端进行解析。例如,我知道Netvibes在客户端进行解析(但是将内容缓存在服务器上),因此节省了很多资源。这样,它们仅在用户询问时才轮询提要,因此不需要它们运行某种时间循环。

不幸的是,基于时间的轮询仍然是最常见的解决方案。有很多技术可以确定何时进行轮询的最佳时间。根据过去更新的频率,根据已登记的用户数量等。这些人也可以使用旧的XML-RPC ping服务器。

最有效的技术是使用PubSubHubbub,这是Google Reader,Netvibes和数千种其他应用程序(例如Digg.com,Twitterfeed,Friendfeed ...)使用的开放协议(protocol)。这是一个开放协议(protocol),允许提要发布者直接将提要的内容推送到订阅应用程序。它非常有效,但是需要发布者来实现它。偶然地,所有大型博客平台(Tumblr,Posterous,Wordpress,Blogger,SixApart等)都实现了它。其他供稿发布应用程序(例如feedburner,Gowalla等)也实现了它。如果您确实发布了供稿,则我鼓励加入这一人群,如果您打算消费一些,也请实现替代方。

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

另外,我应该补充一点,就是我能够快速回复您的问题,因为我使用的应用程序可以将供稿内容推送给我,以解决标记为RSS的问题:)

关于xml - 大型RSS阅读器的工作原理(netvibes,Google阅读器...),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3949688/

10-14 11:15