агрегирование профилей, таких как Facebook - PullRequest
1 голос
/ 15 ноября 2010

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

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

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

1 Ответ

0 голосов
/ 16 ноября 2010

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...