Здравствуйте коллеги! Поступило распоряжение разработать оптимальный агрегатор соц сетей.
Смысл в чем:
Каждый пользователь может создавать несколько новостных лент, в которых указываются различные соц сети (FB, TW, G+, YT).
В результате у среднего пользователя получается 5 лент, в каждой из которых подключено 5 соц аккаунтов (из которых тянутся все посты в начале, а потом обновляются по дате).
Другие пользователи могут просматривать свои и чужие ленты.
На данный момент есть 2 варианта:
1) Парсить записи со всех источников и сохранять в БД, а потом отдавать пользователям.
2) Парсер выступает в роли прокси и получает контент во время запроса.
Первый вариант проблематичен тем, что занимает огромные объемы памяти и ресурсов. (100 пользователей по 5 фидов по 5 соц аккаунтов уже 2500 запросов и немалый объем БД)
Второй же менее актуален из-за временных задержек, проблематичной сортировки etc.
Хотелось бы услышать ваше мнение и варианты реализации подобной задачи.
Смотря какие требования помимо "агрегатор соц. сетей"
Прокси более выгоднее по ресурсам.
Со скоростью у крупных сетей проблем не должно быть.
Вот ВК апи например
Average response time — 48 ms
Uptime — 100%
Если нужны каки-ето более менее сложные сортировки, то нужно делать первый вариант. Так же если планируется оповещение пользователей о том или ином событии первый вариант.
Почему вы считаете количество запросов и место. Вы же не будете хранить медиа. Достаточно хранить текстовую инфу и ссылки на медиа, если таковые имеются.
Опять же все зависит от требований и функционала.
Возможно сделать еще варианты. Удалять старые данные через N времени. Если нужно будет их получить, то загрзить на лету.
Или же что-то промежуточное между 1 и 2. Хранить мета информацию в виде списка айдишников постов/записей, и получать их на лету полностью при запросе пользвателем.
У меня опыт по агрегации, эти нехорошие люди админы редиски, из соц сетей, в частности, фейсбук, поиск гугла, и G+ (rss) и так далее, постоянно меняют "заголовки", на парсер постоянный не надейтесь. Никаких нервов не хватит.