Fuente: La arquitectura de WhatsApp que Facebook compró por $ 19 mil millones – Alta escalabilidad
Aquí está la explicación general del enlace.
- El servidor de WhatsApp se implementa casi por completo en Erlang.
- Los sistemas de servidor que realizan el enrutamiento de mensajes de fondo se realizan en Erlang.
- Un gran logro es que la cantidad de usuarios activos se gestiona con una huella de servidor realmente pequeña. El consenso del equipo es que se debe en gran parte a Erlang.
- Es interesante notar que el chat de Facebook se escribió en Erlang en 2009, pero se alejaron porque era difícil encontrar programadores calificados.
- El servidor de WhatsApp ha comenzado desde ejabberd
- Ejabberd es un famoso servidor Jabber de código abierto escrito en Erlang.
- Originalmente elegido porque es abierto, tuvo excelentes críticas de los desarrolladores, facilidad de inicio y la promesa de la idoneidad a largo plazo de Erlang para un gran sistema de comunicación.
- Los siguientes años se dedicaron a reescribir y modificar bastantes partes de ejabberd, incluido el cambio de XMPP a un protocolo desarrollado internamente, la reestructuración de la base del código y el rediseño de algunos componentes centrales, y realizar muchas modificaciones importantes en Erlang VM para optimizar el rendimiento del servidor .
- Para manejar 50 mil millones de mensajes al día, el enfoque está en hacer un sistema confiable que funcione. La monetización es algo para ver más adelante, está muy lejos en el futuro.
- Un indicador principal del estado del sistema es la longitud de la cola de mensajes. La longitud de la cola de mensajes de todos los procesos en un nodo se supervisa constantemente y se envía una alerta si se acumulan más allá de un umbral preestablecido. Si uno o más procesos se atrasa, se alerta, lo que da un puntero al siguiente cuello de botella para atacar.
- Los mensajes multimedia se envían cargando la imagen, el audio o el video para enviarlos a un servidor HTTP y luego enviando un enlace al contenido junto con su miniatura codificada Base64 (si corresponde).
- Algunos códigos generalmente se envían todos los días. A menudo, es varias veces al día, aunque en general se evitan las horas pico de tráfico. Erlang ayuda a ser agresivo para obtener soluciones y características en la producción. La carga en caliente significa que las actualizaciones se pueden enviar sin reinicios ni cambios de tráfico. Los errores generalmente se pueden deshacer muy rápidamente, nuevamente cargando en caliente. Los sistemas tienden a estar mucho más flojos, lo que hace que sea muy fácil implementar los cambios de forma incremental.
- ¿Qué protocolo se usa en la aplicación Whatsapp? Enchufe SSL a los grupos de servidores de WhatsApp. Todos los mensajes se ponen en cola en el servidor hasta que el cliente se vuelve a conectar para recuperar los mensajes. La recuperación exitosa de un mensaje se devuelve al servidor de WhatsApp que reenvía este estado al remitente original (que verá eso como un icono de “marca de verificación” al lado del mensaje). Los mensajes se borran de la memoria del servidor tan pronto como el cliente ha aceptado el mensaje
- ¿Cómo funciona internamente el proceso de registro en Whatsapp? WhatsApp solía crear un nombre de usuario / contraseña basado en el número IMEI del teléfono. Esto fue cambiado recientemente. WhatsApp ahora utiliza una solicitud general de la aplicación para enviar un PIN único de 5 dígitos. Luego, WhatsApp enviará un SMS al número de teléfono indicado (esto significa que el cliente de WhatsApp ya no necesita ejecutarse en el mismo teléfono). Según el número de pin, la aplicación solicita una clave única de WhatsApp. Esta clave se utiliza como “contraseña” para todas las llamadas futuras. (esta clave “permanente” se almacena en el dispositivo). Esto también significa que registrar un nuevo dispositivo invalidará la clave en el dispositivo anterior.
- Cómo explicar las tecnologías móviles y cuántos tipos de tecnología móvil existen.
- ¿Cómo cambiaría el mundo si los teléfonos móviles desaparecieran?
- ¿Podrán los humanos salir de nuestra galaxia en los próximos 100 años?
- ¿De dónde vendrá la próxima nueva ola de tecnología?
- ¿Cuál es la forma más avanzada de música?