-
Notifications
You must be signed in to change notification settings - Fork 1
Flow
##How Minecraft Normally Work Usually, in a traditional Minecraft server, player flow is like this:
Player A Player B Player C
| | |
| | |
| | |
+-----------------------------------+-----------------------------------+
|
|
|
▼
Server 1
|
|
|
▼
SERVER_world_1
SERVER_world_1_nether
SERVER_world_1_the_end
or some server attempts to scale like this:
Player A Player B Player C
| | |
| | |
| | |
+-----------------------------------+-----------------------------------+
| |
| |
| |
▼ ▼
Server 1 Server 2
| |
| |
| |
▼ ▼
SERVER_world_1 SERVER_world_2
SERVER_world_1_nether SERVER_world_2_nether
SERVER_world_1_the_end SERVER_world_2_the_end
Above are the old ways of handling players. Bottleneck usually happens when a single machine gets filled up with high amount of concurrent players.
#The Right Way to Scale Let's visualize a smarter way to distribute players. In Minecraftly, it's like this:
Player A Player B Player C
| | |
| | |
| | |
▼ ▼ ▼
Server 1 or 2 or 3 or 4 or 5 or 6 or 7 or 8 or 9 or 10 or 11 or 12... or ∞
| | |
| | |
| | |
▼ ▼ ▼
+------------------------------------------------------------------------------------+
| PLAYER_world_A PLAYER_world_B PLAYER_world_C |
| PLAYER_world_A_nether PLAYER_world_B_nether PLAYER_world_C_nether |
| PLAYER_world_A_the_end PLAYER_world_B_the_end PLAYER_world_C_the_end |
+------------------------------------------------------------------------------------+
As you can see, in this method, it doesn't matter which server brings player his/her own world when they log in, as long as one server delivers the correct world to the correct player at the correct moment.
So, where do we store those world folders? The worlds are stored in a common file system or something? The answer is yes. It can simply be a NFS server or a scale out NAS cluster. Any solution works, as long as all servers share the same common file system folder.
Minecraftly is distributed under the GNU GPLv3 license.