2010-12-05 6 views
1

Pour ceux qui ne le connaissent pas, un échange d'annonces d'enchères en temps réel est un moyen relativement nouveau de permettre aux annonceurs de faire une "offre" pour le droit d'afficher leur annonce auprès d'un particulier. Cela fonctionne comme ceci: Un utilisateur frappe un site Web qui contient un espace pour une annonce. Ce site web pings ensuite l'échange d'annonces et demande une annonce. L'échange d'annonces envoie ensuite un ping à tous les annonceurs qui sont "abonnés" à ce type d'annonce via une API REST que les annonceurs doivent exposer, en fournissant des informations sur l'opportunité de diffusion de l'annonce. Chaque annonceur répond alors avec une «enchère», combien paieraient-ils pour montrer leur publicité. Les annonceurs n'ont que 100ms pour répondre, et celui qui gagne cette enchère obtient le droit d'afficher son annonce.De quelle architecture logicielle auriez-vous besoin pour créer un échange d'annonces "d'enchères en temps réel"?

Avec un échange d'annonces typique, tout ce processus peut se produire 2 000 fois par seconde!

J'ai réfléchi à l'architecture et à l'infrastructure qui doivent être requises pour quelque chose comme ça, et cela me semble incroyable. Cela implique d'initier des millions de connexions HTTP sortantes chaque seconde, d'attendre jusqu'à 100ms pour que chacune réponde, puis de traiter les réponses.

Est-ce que quelqu'un a déjà eu l'expérience de construire une architecture comme celle-ci? Comment peut-on y arriver?

+0

Probablement juste un serveur bien écrit en C (#/++) ou Java avec des bases de données optimisées ou en mémoire. – CodeJoust

+0

Garder les données obsolètes (c'est-à-dire, la mise en cache) est la clé d'un système comme celui-ci. "Des millions de connexions HTTP sortantes" semblent problématiques. D'un autre côté, vous n'écrivez le code qu'une seule fois:) ... pourquoi ne pas essayer de créer un million de connexions HTTP dans votre lang favori et voir si cela amène la VM ou l'interpréteur/quoi que ce soit à genoux? –

+0

@sanity: Pourquoi voulez-vous utiliser les services Web pour cela? – Cratylus

Répondre

Questions connexes