Un paso adelante con la Multi-instancia

El fin de semana pasado aproveche para realizar cambios en como funciona actualmente TecnoMakers cardbattle.

 

El cambio principal ha sido en la adaptación de como conecto a los jugadores/as en el juego, al principio del desarrollo funcionaba de la siguiente manera:

– La persona se conectaba directamente a una instancia, por lo que si se cae la instancia se pierde la conexión.

Con el nuevo modelo multi instancia, todo esto queda en el pasado, y permite mucha mas capacidad de personas online,

 

Así es como funciona actualmente:

Existe actualmente 1 servicio de login, donde te conectas y verifica tus datos, y de aquí se te pasa a una instancia que tenga menos carga.

Cuando te va a traspasar a otra instancia verifica unos datos, y lo que hace es cerrar la conexión del websocket del servicio, y te conecta de nuevo pero a la instancia de juego.

Así es como ha quedado después de este fin de semana, pero aun queda perfeccionar el sistema, y para evitar que una instancia crashee y haya problemas, la manera de solucionar esto, es con 2 servicios internos para ello, este sera el siguiente paso:

Controlador de sesiones: donde si te caes, y el server de login ha dejado de funcionar, esta sera la base de datos local donde se guardara, ejemplo practico: la instancia en la que estas crashea por un error, el cliente verificara una de las instancias de login, y te conectara hasta una que funcione en caso que hayan crasheado, entonces esta si no tiene tus datos, la verificara y te enviara a alguna instancia, si todas fallan, en el peor de los casos te desconectara del juego porque todas las instancias estarán caídas.

Controlador de instancias: Sera un servicio interno que las demás instancias contactaran para obtener un ID, registrar el puerto y iniciarse, y también el servidor de login, para buscar alguna a la que enviar a quien se conecte a jugar, y también levantar instancias si hace falta, o servicios de login.

El cliente para verificar que instancias hay levantadas, hará una petición a una API para obtener el listado de instancias de login conectadas.

 

Una vez termine eso, el juego quedara mas estable, ahora mismo esta puesto solo 1 instancia, para terminar de arreglar cosas del sistema, pero una vez este programado lo mencionado anteriormente, estará listo para poder auto escalar automáticamente.

WordPress Themes