2010-11-15 2 views
1

просто интересно, как вы, ребята, сделали бы агрегатор подачи, как простой facebook, используя nosql (например, redis).агрегирование профилей, таких как facebook

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

Как вы, ребята, это сделаете?

ответ

0

Очевидно, что если вы не можете делать обновления в реальном времени, вам необходимо сделать обновление до того, как пользователь попросит об этом - в основном у вас есть список всех известных каналов и проверка обновлений по регулярному расписанию, возможно на основе частоты обновления каждого фида. Когда пользователь запрашивает агрегат, вам просто нужно вернуть данные, которые у вас уже есть.

Убедившись, что данные достаточно актуальны, немного сложнее. Если вы являетесь Google, вы можете проверить весь интернет каждые несколько минут - не вариант для большинства людей. Тем не менее, вы можете приблизиться к реальному времени с помощью комбинации планирования интеллектуального обновления и использовать apis в реальном времени, где они доступны. Для чего-то подобного я работаю над базовой архитектурой - хранилище данных, содержащее все сообщения и ряд процессов, которые могут извлекать данные из определенного типа фида и добавлять сообщения в хранилище данных в общем формате.

 Смежные вопросы

  • Нет связанных вопросов^_^