¿Qué tecnologías debo usar para crear una aplicación en tiempo real que se ajuste?

Escalar se trata de poder dividir el trabajo.

En el caso de la inserción en tiempo real, una arquitectura de publicación-suscripción es lo mejor para la escala. La carga de tráfico se puede dividir entre varios servidores con un estado compartido mínimo. Delegar a un proveedor push en tiempo real es una buena manera de manejar la escala mientras se ahorra tiempo y dinero (descargo de responsabilidad: trabajo para dicho proveedor).

El trabajo de la base de datos es mucho más difícil de dividir dependiendo de qué tipo de consistencia garantiza que necesita. Los servidores SQL como MySQL generalmente no se consideran escalables masivamente sin renunciar a algunas garantías. Probablemente la escala más sencilla que puede hacer con MySQL es una configuración maestro / esclavo con múltiples esclavos (también conocidos como “réplicas de lectura”) para escalar el tráfico de lectura. Este tipo de configuración puede ser masivamente escalable si puede tolerar que las réplicas de lectura estén potencialmente desactualizadas cuando se produce una lectura.

Si no le importa, podría compartir algunas ideas sobre el escalado de MySQL.

Con toda transparencia, no he usado Firebase ni Pusher para crear aplicaciones en tiempo real, pero he usado MySQL en condiciones de carga pesada.

Desde una perspectiva de MySQL, no debería tener muchos problemas si pudiera usar una Configuración activa / activa o seguir un mecanismo de fragmentación adecuado para sus datos.

Tampoco estoy seguro sobre el volumen de sus mensajes y cómo crecería durante un período de tiempo. Dicho esto, recomendaría una buena estrategia de fragmentación basada en sus requisitos, que le daría el equilibrio correcto de uso de datos en los nodos fragmentados.

Podrías leer acerca de MySQL Cluster FAQ. Yo recomendaría pasar por la pregunta # 7. Definitivamente parece que su escenario es adecuado para él, pero no estaría de más leerlo.

¡Buena suerte!

More Interesting

¿Cuáles son las preocupaciones de seguridad en la representación del lado del cliente de una aplicación web?

Al crear una aplicación web, ¿cuáles son las 10 tareas más comunes?

¿Cuánto cuesta construir una aplicación web con análisis de datos pesados ​​en su back-end?

Soy un recién graduado y no tengo 2 años de historial laboral, pero puedo crear aplicaciones web o aplicaciones de escritorio. ¿Cómo puedo pasar el RRHH y obtener una entrevista técnica para demostrar mis habilidades?

¿Cuál es una buena herramienta para administrar tareas (con capacidades fuera de línea)?

¿Existe una aplicación web de calendario que sea mejor que Google Calendar en términos de una interfaz de usuario?

Cómo elegir las mejores tecnologías para mi aplicación web

¿Cuál es el requisito de hardware (infraestructura) necesario para que Jmeter cargue grandes aplicaciones web de prueba? (Digamos, sitios web y aplicaciones de la universidad).

Me gustaría aprender a construir una aplicación web con Ruby on Rails, ¿dónde debo comenzar?

¿Cuál es una buena alternativa a la Lista de tareas pendientes de Basecamp?

¿Cómo manejas las solicitudes específicas de los clientes de cosas que sabes que son malas ideas?

¿Cómo debe diseñar su aplicación web React?

¿Qué motor de almacenamiento MySQL sería el más apropiado para una aplicación web?

¿Cuánto cuesta construir una aplicación similar a AirBNB?

¿Es la "neutralidad de la aplicación" una buena o mala idea?