Certains amis et moi-même avons écrit un jeu pour Facebook sans vraiment réfléchir à l'architecture réelle du jeu - et imaginons notre surprise lorsque nous avons atteint plus de 300 000 joueurs uniques par mois et que nos serveurs fondaient .Architecture de serveur pour un jeu Facebook évolutif
Maintenant, nous travaillons sur la refonte de tout le côté serveur du jeu afin de le rendre beaucoup plus évolutif et capable de supporter des centaines de milliers voire des millions d'utilisateurs.
Actuellement, je suis nouveau à l'ensemble du concept de mise à l'échelle, mais de ce que je compris plus ou moins c'est ce que nous avons besoin: 1. Un équilibreur de charge 2. Un serveur web par 20.000 utilisateurs simultanés ~ (Nous avons contacté une 3ème partie développeur Comet qui prétend qu'ils peuvent supporter jusqu'à 20.000 connexions simultanées par nœud) 3. un cluster de cache 4. Base de données de cluster
maintenant, tout cela est très abstraite évidemment, mais suis-je manque quelque chose? Si nous développons ceci dans .NET, quelqu'un peut-il recommander une bonne technologie de serveur de cache de cluster?
Gardez à l'esprit que:
- Notre objectif est d'atteindre des millions de joueurs
- Notre objectif est d'atteindre 10s/100s de milliers d'utilisateurs simultanés
- Nous devons garder autant que les données possibles sur cachez-le et jetez-le dans le DB à chaque période de temps
- Nous avons des interactions entre les joueurs (obtenir les mises à jour des scores des joueurs, etc.) et nous avons besoin d'un cache centralisé ou répliqué pour travailler (ce qui signifie essentiellement que nous avons besoin du cache données que tous les serveurs web accèdent pour être complètement synchronisé)
OK, mais le cloud Azure nous permet-il d'utiliser ce qui suit? * Clusters de base de données * Clusters de cache De plus, gardez à l'esprit que nous visons 100 000/1 000 000 d'utilisateurs simultanés, et que certaines actions requièrent des informations immédiates et synchronisées sur différents lecteurs. –
Azure gère l'équilibrage de charge pour vous, donc ajouter plus d'instances sous un rôle redirigera automatiquement les joueurs vers différentes instances (serveurs). Qu'est-ce que vous utilisez pour une base de données? Il y a beaucoup d'options différentes pour gérer cela en azur. – njebert