Подтвердить что ты не робот

Как работает большой читатель RSS (netvibes, читатель Google...)

Интересно, как работают веб-приложения, такие как Google Reader, Blogline, techronati и какие технологии они используют для анализа миллионов RSS-каналов с использованием задания cron за один раз?

4b9b3361

Ответ 1

Существует много разных методов... "худший" - тот, который вы описываете. (опрос, основанный на времени).

Первое, что вам нужно учитывать, это то, что они могут не выполнять синтаксический анализ на стороне сервера. Например, я знаю, что Netvibes выполнял разбор на стороне клиента (но кэшировал содержимое на сервере), поэтому он сохранил им много ресурсов. Таким образом, они будут опробовать каналы только тогда, когда пользователи попросят у них, поэтому им не нужно запускать какой-то временной цикл.

Опрос, основанный на времени, по-прежнему является, к сожалению, самым частым решением. Существует много методов, чтобы определить, когда самое лучшее время для проведения опроса. Основываясь на частоте прошлых обновлений, в зависимости от количества пользователей, которые предположительно... и т.д. Этими ребятами могут также использоваться старые серверы ping-сервера XML-RPC.

Наиболее эффективным методом является использование PubSubHubbub, который является открытым протоколом, используемым Google Reader, Netvibes и несколькими тысячами других приложений (например, Digg.com, Twitterfeed, Friendfeed...). Это открытый протокол, который позволяет издателю каналов напрямую подталкивать содержимое канала подписчикам. Он очень эффективен, но требует от издателя его реализации. Случайно, все большие платформы для ведения блога (Tumblr, Posterous, Wordpress, Blogger, SixApart... и т.д.) Внедрили его. Другие приложения публикации фидов (например, feedburner, Gowalla,...) также реализовали его. Если вы публикуете фиды, я бы рекомендовал присоединиться к этой группе, и если вы планируете использовать некоторые из них, пожалуйста, также реализуйте сторону susbcriber.

Последнее решение - использовать стороннее приложение для сбора данных (используя все вышеприведенные методы) и пинговать, когда у этих каналов есть новый контент. Я создал один: Superfeedr, и я считаю, что мы хорошо справляемся с этим. Мы также нормализуем контент и делаем несколько других вещей, чтобы помочь вам потреблять данные корма самым простым и дешевым способом (опрос может быть сумасшедшим дорогим). Кроме того, мы используем тот же протокол PubSubHubbub, чтобы выталкивать контент из любого канала, что очень просто для наших пользователей использовать наш сервис в дополнение к подписке на доступные концентраторы.

Кроме того, я должен добавить, что я смог быстро ответить на ваш вопрос, потому что я использую приложение, которое подталкивает меня к содержимому фида для вопросов с тегами RSS:)