2010-11-15 7 views
1

juste se demandant comment vous les gars feraient un agrégateur de flux comme un simple facebook en utilisant nosql (comme redis).agréger les flux de profil comme facebook

Fondamentalement, vous avez beaucoup de profils, et chaque profil aurait son propre flux. Chaque fois qu'un utilisateur demande un agrégat, le système récupère simplement tous ces profils, les traite (et les regroupe) puis les affiche aux utilisateurs. Le problème avec cette approche est quand quelqu'un a comme 1000 amis, le système devrait chercher 1000 nourritures (indépendamment s'il y a n'importe quelle mise à jour ou pas) et puis les traite.

Comment voulez-vous les gars le faire?

Répondre

0

Évidemment, si vous ne pouvez pas faire les mises à jour en temps réel, vous devez avoir fait la mise à jour avant que l'utilisateur ne le demande - Fondamentalement, vous avez une liste de tous les flux connus et vérifiez les mises à jour régulièrement. basé sur la fréquence de mise à jour de chaque flux. Lorsqu'un utilisateur demande un agrégat, il vous suffit de renvoyer les données que vous avez déjà. S'assurer que les données sont raisonnablement à jour est un peu plus compliqué. Si vous êtes Google, vous pouvez consulter l'ensemble de l'Internet toutes les quelques minutes - pas une option pour la plupart des gens. Cependant, vous pouvez vous rapprocher raisonnablement du temps réel grâce à une combinaison de planification intelligente des mises à jour et à l'utilisation d'API en temps réel lorsqu'elles sont disponibles. Pour quelque chose de similaire, je travaille sur l'architecture de base est un magasin de données contenant tous les messages et un certain nombre de processus qui peuvent tirer des données d'un type particulier de flux et ajouter les messages dans le magasin de données dans un format commun.

Questions connexes