Multi Server Configuration
Atavism has a unique infrastructure that allows you to configure Multi Server Setup in order to balance its workload. This will give you uncompromised scalability. The maximum you can have 13 separate servers for plugins/modules:
- Auth Server
- World Domain Server
- World Login Server
- World Combat Server (Option to multiplicate from Atavism X (10.0.0))
- World Instance Server
- World Object Manager Server
- World Manager Server (Option to multiplicate from Atavism X (10.0.0))
- World Proxy Server (Option to multiplicate from Atavism X (10.0.0))
- World Mob Server (Option to multiplicate from Atavism X (10.0.0))
- World Arena Server
- World Builder Server
- Auction House Server (from Atavism 2018.3.0)
- World Faction Server (from Atavism X (10.0.0))
- World Chat Server (from Atavism X (10.0.0))
- World Weather Server (from Atavism X (10.0.0))
- World Quest Server (from Atavism X (10.0.0))
- World Prefab Manager Server (from Atavism X.2 (10.2.0))
and 4 database servers:
- Admin Database Server
- Atavism Database Server
- Master Database Server
- World Content Database Server
Configuration for Auth Server does not change, because it can be run as a separate server out of the box.
In order to run one of the World plugin/module servers on the separate machine, you should in the world.properties set parameters as follows:
atavism.login.bindaddress=AddressWhereWorldLoginServerIs
atavism.msgsvr_hostname=AddressWhereWorldDomainServerIs
atavism.proxy.bindaddress=AddressWhereWorldProxyServerIs
Important note: All database credentials for all servers should be the same, so the data could be shared.
With new Atavism 2018.1.2 we introduced few more switches to run particular server instead of all of them:start|stop|status|restart|proxy|wmgr|domain|combat|instance|login|objmgr|mob|arena|builder, for example:
./world.sh -vC login
So you should start all your 9 world plugin/module servers which you chose on the first server and the one which you want to run separately on the second server.
Such a procedure can be continued until all 10 world plugin/module servers will be run on a separate server to balance the workload.
Important note: All servers must have the same time and timezone.
Here is an example configuration where we split one mob server from the whole server instance.
Server 1 contains all except mob server (IP: 192.168.100.10):
In the world.sh on this server 1, you should comment the line related to the mob server startup, as we want to start it on server 2 but not on server 1.
After that we will be able to start server 1 using the same command as usual:
./world.sh -vC start
Server 2 contains only the mob server (IP: 192.168.100.11):
To start the mob server on the server 2 just type the command:
./world.sh -vC mob 1
And here is the result.
You can repeat this procedure for every functional server.
Important note: Agent (in our example mob server) must be started within 60 seconds after the domain will be started, so the domain could set the communication channel for that agent server.