Los siguientes son los detalles más esenciales y de alto nivel que pueden ser útiles para comprender cómo funciona un servicio como Whatsapp.
- En primer lugar, Whatsapp es un servicio de chat basado en la nube que significa que necesita un servidor centralizado para proporcionar todos los servicios.
- Hay tres partes esenciales: remitente, receptor y servidor. El mensaje se envía al servidor, lo almacena y lo envía al receptor (Simple, ¿verdad? ¡NO! Hay muchos problemas, mencionaré algunos cuando sea relevante)
- El Servidor retiene los mensajes para el Receptor hasta que se conecta, en ese momento el Receptor envía un mensaje al Servidor que dice “Estoy en línea, ¡dame mis mensajes!”, Y el Servidor envía todos los mensajes retenidos con marcas de tiempo.
- La tarea más esencial del servidor es mantener todos los mensajes sin enviar para miles de millones de usuarios diferentes con la identificación del remitente, por lo que el servidor debe tener una clave única para que cada usuario almacene todos los mensajes y otra información esencial. Así es como se almacenan los mensajes para cada usuario cuando están fuera de línea ( idea central )
- Del mismo modo, el recibo de lectura ( marca azul ) funciona de la misma manera, se envía un mensaje a través del servidor que el mensaje se lee, ¡cámbielo a azul!
- Hasta ahora, es posible que haya imaginado un solo servidor en estos escenarios, pero en realidad hay miles de máquinas que se están utilizando para estas tareas para resolver dos problemas principales: (1) Escalabilidad: atender millones de solicitudes no se puede hacer con uno o dos servidores, el La carga se distribuye entre varios grupos de máquinas. (2) Replicación : toda la información se almacena en al menos tres servidores diferentes para que en caso de falla de la máquina no se pierda información.
- Otra información, como la foto y el estado de su perfil, se almacena en los servidores y todos los dispositivos verifican con el servidor si alguien de su lista de contactos ha actualizado algo, en caso afirmativo, se obtiene nueva información del servidor
- El servidor también mantiene información para contactos bloqueados e información de grupo para realizar en consecuencia si se debe soltar el mensaje o multicast.
Espero que esto ayude.
Esta es una explicación de muy alto nivel, pero si alguien interesado en un punto o servicio en particular, me encantaría profundizar.
- Cómo implementar un árbol de segmentos con treaps
- ¿Cuál es el mejor algoritmo para encontrar la longitud de la subcadena más larga sin repetir caracteres?
- ¿Existe un algoritmo para aplicar a una imagen que muestre lo que vería alguien que necesita corrección de la visión?
- Si tengo una base de datos con 100 mil millones de nombres de usuario, ¿cómo construyo eficientemente una matriz ordenada a partir de eso para realizar fácilmente una búsqueda binaria?
- Cómo entender la notación big-O
Gracias.