Servidor
Red
Varios servidores que comparten una base de datos y Redis: trabajos que siguen al jugador, un mercado y presupuesto compartidos, y órdenes de trabajo compartidas.
No hay un interruptor de red: apunta el database.yml de ExyliaLib de cada servidor a la misma base MySQL, MariaDB, PostgreSQL o MongoDB, y activa database.redis en cada uno con su propio server-id. Entonces:
- Los trabajos siguen al jugador. El servidor que tiene a un jugador mantiene un bloqueo entre servidores sobre él desde que entra hasta el final de su escritura al salir; una entrada en cualquier sitio lo espera (como mucho
handover-wait) para que siempre se lea la última escritura. Desactivanetwork-handoveren un servidor cuyos trabajos no se comparten. - El mercado y el presupuesto se comparten mediante Redis: cada servidor envía lo que ha añadido cada pocos segundos, así que la tasa de mercado y el factor de pago reflejan toda la red. Sin Redis cada servidor mantiene los suyos.
- Las ganancias se cargan desde el libro al entrar (esta hora y hoy, de todos los servidores), así que los topes sobreviven al cambiar de servidor.
- Las órdenes de trabajo se comparten: las órdenes viven en la base de datos, cada cambio toma un bloqueo de fila entre servidores, y los demás servidores reciben el aviso mediante Redis (una red sin Redis converge en menos de un minuto).
- Las órdenes del servidor las publica cada servidor por su cuenta; el máximo es por servidor.
- Las clasificaciones, mejoras y pausas salen de la base de datos compartida; una pausa se vuelve a leer al entrar.
Las cifras del panel y los placeholders como "today" son solo de este servidor.
¿Falta algo en esta página? Dínoslo en Discord