Server architecture for scalable Facebook game

Some friends and I wrote the game for Facebook without thinking about the real architecture of the game, and imagine our surprise when we reached more than 300,000 unique players per month and as our servers melted.

Now we are working on redesigning the entire server side of the game to make it much more scalable and able to support hundreds of thousands, if not millions of users.

I'm currently new to the whole concept of scaling, but from what I understood more or less, this is what we need: 1. A load balancer 2. A web server for every 20,000 ~ simultaneous users (we contacted a third-party developer comets, which claims to support up to 20,000 simultaneous connections per node). 3. Caching cluster 4. Database cluster

Now this is all very abstract, but am I missing something? If we are developing this in .NET, can anyone recommend a good cluster cache server technology?

Keep in mind that:

  • We strive to reach millions of players.
  • We strive to reach 10/100 thousand users at a time.
  • We need to store as much data about the cache as possible and upload them to the database every time period.
  • We have some kind of interaction between the players (get player point updates, etc.), and we need a centralized or replicated cache to work (basically this means that we need the cache data that all web servers get for the full sync)
+4
source share
1 answer

How about deploying in an Azure cloud? Assuming what they say, scalability will be no more than your problem.

Instead of creating a database cluster, how about dividing the players into different "servers", "worlds", or whatever you call it in your game. I don’t know which game you are talking about, but most of the browser games that I play do this to handle the load.

+1
source

Source: https://habr.com/ru/post/1338281/


All Articles