Compartir tecnología de mensajería instantánea de Alibaba (6): optimización de la tasa de llegada push fuera de línea del sistema de mensajería IM de Xianyuyi
Como herramienta de comunicación entre compradores y vendedores, el sistema de mensajería instantánea de Xianyu mejora la comprensión y la confianza. Es de gran valor para las transacciones de Xianyu y es el vínculo más importante para mejorar la experiencia del usuario.
Sin embargo, con el rápido crecimiento del volumen de negocios, el sistema de mensajería actual enfrenta muchos problemas que deben resolverse.
Los siguientes son problemas típicos:
1) Mejora de la experiencia de mensajes en línea
2) Tasa de alcance del envío fuera de línea;
3) El acoplamiento entre el juego de mensajería y el sistema de mensajería subyacente es demasiado fuerte.
Después de la evaluación, creemos que la tasa de llegada de push fuera de línea es el tema más crítico en esta etapa, lo que tiene un gran impacto en la experiencia del usuario.
Este artículo compartirá la práctica técnica de la mensajería IM de Xianyu para resolver la tasa de llegada de envíos fuera de línea, incluido el análisis de problemas y las ideas de optimización técnica. Espero que pueda inspirarlo.
(Este artículo se ha publicado simultáneamente en:/thread-3748-1-1.html?)
Este artículo es el sexto de la serie y el contenido general es el siguiente. siguiente:
Intercambio de tecnología de mensajería instantánea de Alibaba (1): el rey de la mensajería instantánea empresarial: el punto destacado de la arquitectura back-end.
Compartir tecnología de mensajería instantánea de Alibaba (2): práctica de transformación cruzada del terminal móvil de mensajería instantánea Xianyu basado en Flutter
Compartir tecnología de mensajería instantánea de Alibaba (3): sistema de mensajería de mensajería instantánea de mil millones de niveles de Xianyu Evolución de la arquitectura
Compartición de tecnología de mensajería instantánea de Alibaba (4): práctica de optimización de entrega confiable del sistema de mensajería de mensajería instantánea de Xianyu Yiyi
Compartición de tecnología de mensajería instantánea de Alibaba (5): optimización del sistema de mensajería de mensajería instantánea de Xianyu Yiyi La práctica de puntualidad
Intercambio de tecnología de mensajería instantánea de Alibaba (6): optimización de la tasa de llegada push fuera de línea del sistema de mensajería IM de Xianyuyi (*este artículo)
Desde la perspectiva técnica de los enlaces de comunicación de datos, dependiendo Dependiendo de si el cliente Xianyu está en línea o no, el enlace del mensaje general se divide aproximadamente en un enlace de detección fuerte y un enlace de detección débil.
El enlace de inducción fuerte se compone de los siguientes subsistemas o módulos:
1) Cliente remitente
2) idleapi-message (puerta de enlace de mensajes Xianyu);
3) heracles (servicio de mensajes subyacente de Xianyu);
4) accs (canal de conexión largo desarrollado por Alibaba
5) cliente receptor.
Los indicadores centrales de todo el enlace son el retraso de un extremo a otro y la tasa de llegada de mensajes.
Ambas partes en el enlace de detección fuerte están en línea y se garantiza que el destinatario detectará el mensaje cuando llegue al cliente. El principal problema de los enlaces fuertes es el retraso de los mensajes de un extremo a otro.
La principal diferencia entre enlaces débilmente conscientes y enlaces fuertemente conscientes es que el receptor de un enlace débilmente consciente está fuera de línea y necesita depender del impulso fuera de línea para su entrega.
Por lo tanto, la percepción del usuario de un enlace débilmente consciente no es fuerte. Su indicador principal es la tasa de llegada de mensajes, no el retraso.
Por lo tanto, el objetivo de optimizar los enlaces débiles en esta etapa es mejorar la tasa de llegada de mensajes fuera de línea. En otras palabras, el problema de mejorar la tasa de llegada de mensajes fuera de línea es optimizar el propio enlace débilmente consciente.
El siguiente es el diagrama de arquitectura de todo el sistema de mensajería IM, para sentir el vínculo general:
Como se muestra en la figura anterior, los componentes y subsistemas principales se dividen de la siguiente manera:
1) HSF es un marco de servicio remoto y es la versión interna de dubbo;
2) tair es un marco de almacenamiento en caché distribuido desarrollado por Alibaba y admite diferentes motores de almacenamiento como memcached, Redis y LevelDB.
3) agoo es el centro push fuera de línea de Alibaba, responsable de integrar canales push fuera de línea de diferentes fabricantes y proporcionar servicios push fuera de línea unificados a usuarios del grupo;
4) accs es el canal de conexión largo desarrollado por Alibaba proporciona comodidad para la interacción bidireccional en tiempo real entre el cliente y el servidor;
5) lindorm es un producto NoSQL desarrollado por Alibaba, similar a HBase
6) Anillo de dominio Es la estructura central del rendimiento de optimización de mensajes de Xianyu y se utiliza para almacenar los mensajes más recientes de los usuarios.
Los enlaces de detección fuertes y los enlaces de detección débiles son diferentes en la selección de canales:
1) El enlace de detección fuerte utiliza las cuentas del canal en línea
2) Enlaces de detección débil Usa el canal sin conexión agoo.
En términos sencillos, el vínculo de percepción débil se refiere al sistema de envío de mensajes fuera de línea.
En comparación con los mensajes en línea y el push en la terminal (es decir, el fuerte vínculo de percepción mencionado anteriormente), es difícil garantizar que el push fuera de línea sea percibido por los usuarios.
Las situaciones típicas incluyen:
1) No enviado al dispositivo del usuario: es decir, el push no se entrega al dispositivo del usuario, lo que se puede analizar a partir del retorno del canal. ;
2) Enviado al dispositivo del usuario pero no mostrado en la barra de notificaciones del sistema: Xianyu una vez encontró una situación en la que el canal regresó con éxito, pero el usuario no vio el envío
3) Se muestra en la barra de notificaciones y el sistema lo contrae: diferentes fabricantes de Android impulsan diferentes estrategias de plegado. Después de plegarlo, los usuarios deben expandirlo activamente para ver el contenido, y el efecto de alcance es significativamente peor;
4) Se muestra en la barra de notificaciones y los usuarios lo ignoran: la tasa de clics de El push fuera de línea es menor que el del push en línea.
Para "1) No enviado al dispositivo del usuario", los motivos son los siguientes:
1) El token del canal sin conexión no es válido
2) El los parámetros son incorrectos;
p>
3) El usuario cierra la notificación de la aplicación
4) El usuario la ha desinstalado, etc.
Los motivos de "3) Mostrado en el tablero de anuncios y contraído por el sistema" son los siguientes:
1) Tasa de clics en las notificaciones
2) Aplicable al peso del fabricante;
3) Número de empujones, etc.
Las razones para "4) Se muestra en la barra de notificaciones pero el usuario lo ignora" son las siguientes:
1) El usuario no está dispuesto a ver el envío
;2) El usuario ve el push to push, pero no está interesado en el contenido;
3) El usuario está ocupado con otras cosas y no tiene tiempo para ocuparse de ello.
En resumen: estos escenarios de envío de mensajes fuera de línea tienen un conocimiento bajo del usuario, por lo que los llamamos enlaces de conocimiento débil.
Nuestro vínculo de detección débil se divide en tres partes, a saber:
1) Sistema
2) Canal;
3) Usuario.
* * *Incluye Hermès, agoo, fabricantes, dispositivos, usuarios y páginas. Los detalles se muestran en la siguiente figura.
Desde la generación del push hasta el ingreso final del usuario a la APP, * * * se divide en los siguientes pasos:
Paso 1: Hermes es el sistema de acceso de usuarios de Xianyu, responsable de la gestión de multitudes, la gestión de contenidos y el control del tiempo son el punto de partida de todo el vínculo de percepción débil. ;
El segundo paso: agoo es la plataforma intermedia de Alibaba para el envío fuera de línea y es la base de la capacidad de envío fuera de línea de Xianyu;
El tercer paso: AGOO se basa en el canal de envío del fabricante ( (como el canal apns de Apple, el canal fcm de Google y los canales de fabricación propia de los fabricantes nacionales) para lograr un impulso fuera de línea. ;
Paso 4: El push finalmente aparece en el dispositivo del usuario a través del canal del fabricante, que es el requisito previo para que el usuario perciba el push.
Paso 5: Si el usuario sucede; Para ver este Push, entonces el contenido enviado también es muy interesante. Con el clic activo del usuario, la aplicación se activará y se abrirá la página de aceptación, mostrando así productos personalizados al usuario.
Después de los cinco pasos anteriores, el enlace de detección débil ha completado su misión.
Los problemas centrales de los enlaces débilmente conscientes son:
1) Si el mensaje enviado se entrega al usuario.
2) Si se percibe la información transmitida; por el usuario.
Esto corresponde a las dos etapas del push:
1) si el mensaje push llega al dispositivo
2) si el usuario ve el push y hace clic; en ello.
Entre ellos, llegar a la etapa de equipamiento es el más básico y el núcleo de esta optimización.
Podemos agrupar el volumen de procesamiento de mensajes de cada paso por turno y expandirlo en un gráfico de embudo para ver visualmente los cuellos de botella del enlace.
El lugar con la mayor pendiente del gráfico de embudo es el foco de optimización, y el lugar con una pequeña diferencia no necesita ser optimizado:
Al analizar el gráfico de embudo anterior, La optimización de enlaces débilmente conscientes se centra principalmente en tres áreas: Aspectos:
1) Tasa de aceptación de agoo: se refiere al embudo entre la cantidad de solicitudes push que enviamos y la cantidad que se puede reenviar a los canales del fabricante a través de agoo (estación intermedia de Alibaba para envío fuera de línea);
2) Tasa de aceptación del fabricante: se refiere al embudo entre la cantidad aceptada por agoo y la cantidad devuelta exitosamente por el fabricante
3; ) Tasa de clics push: es decir, el envío final a través de los canales anteriores. Si el mensaje al terminal del usuario finalmente se convierte en un "clic" activo por parte del usuario.
Con la dirección de optimización en mente, veamos los métodos de optimización.
Siga la perspectiva push, siga el enlace y vea cómo optimizamos.
Impulsados por los usuarios, tomen el "autobús lanzadera" desde el recinto de Hermès hasta la siguiente parada:? agoo .
Esta es la primera parada para la experiencia push. Cuando llegué a la estación, me quedé estupefacto. Menos de la mitad de la gente se bajó en la estación. ¿Qué está sucediendo?
Hablemos primero de agoo. Hay dos métodos para llamar a agoo:
1) Especifique el dispositivo y el cliente, agoo entregará directamente el envío al dispositivo correspondiente
2) Especifique el usuario y el cliente, agoo; Buscará el dispositivo correspondiente del usuario de acuerdo con la tabla de conversión interna y luego lo entregará.
Nuestro sistema no almacena información del dispositivo del usuario. Entonces agoo se llama según el usuario.
Al mismo tiempo: dado que no hay información del dispositivo del usuario, no sabemos si el usuario es un cliente de iOS o de Android. La parte de ingeniería tiene que enviar notificaciones automáticas tanto a iOS como a Android. Aunque la llegada está garantizada, la mitad de las llamadas son inválidas.
Para comprender este problema: utilizamos la información del dispositivo de agoo. La etapa de cambio de dispositivo de usuario está avanzada antes de llamar a agoo. Primero defina el dispositivo correspondiente al usuario y luego llame al dispositivo especificado para evitar llamadas no válidas.
Una vez optimizado el modo de llamada de agoo, las llamadas no válidas se eliminan inmediatamente y la tasa de finalización de agoo mejora significativamente.
En este punto: finalmente podemos realizar un análisis de alto nivel de las verdaderas razones del fracaso de aceptación de agoo.
Según las estadísticas, la razón principal por la que agoo rechaza el push es que el usuario ha desactivado los derechos de notificación. Al mismo tiempo, nuestro análisis más detallado de los datos de llamadas de agoo encontró que algunos usuarios no podían encontrar el dispositivo correspondiente. Después de optimizar hasta este punto, de repente encontré dos problemas más.
Luego continúe optimizando:
1) Optimice la experiencia de notificación, guía para habilitar los permisos de notificación
2) Utilice agoo*** para crear una base de datos; resolver el problema de falla de conversión del dispositivo.
Estas dos direcciones de optimización son un mundo nuevo y las discutiremos otro día.
Entra en agoo y toma el “tren especial” del fabricante por modelo hasta la siguiente parada: el equipo de usuario.
Esta es la segunda parada de la experiencia push. Cuando me registré en la estación, encontré que estaba abarrotada.
Entonces: Tenemos muchos empujones cada día que se bloquean porque superamos los límites marcados por el fabricante.
¿A qué se debe esto?
De hecho, los proveedores que proporcionan canales de inserción (sí, sus propios canales de inserción son mixtos) limitarán la cantidad total de mensajes que cada aplicación puede enviar para garantizar la experiencia del usuario.
Para los fabricantes, este límite se establecerá según el tipo de envío y la escala de usuario de la aplicación; el envío se divide principalmente en envío de producto y envío de marketing.
El canal push de proveedores tiene las siguientes restricciones en diferentes tipos de mensajes:
1) Para productos enviados por analogía, el fabricante garantiza la llegada;
2) En orden de analogía de marketing, los fabricantes limitarán la cuota;
3) El impulso sin marcar es la analogía de marketing predeterminada.
Simplemente no marcamos el envío, lo que desencadenó las restricciones de envío del fabricante.
Esto causará problemas a nuestros usuarios. Las transacciones de Xianyu dependen en gran medida de las interacciones de noticias entre compradores y vendedores. Es necesario garantizar que esta parte del mensaje llegue.
Del mismo modo, los mensajes sobre pedidos y preocupaciones de los usuarios también deben enviarse a los usuarios.
De acuerdo con los protocolos de interfaz de los principales fabricantes, dividimos los mensajes enviados en las siguientes categorías y los marcamos en consecuencia:
1) Mensajes de mensajería instantánea;
2) Cambios en el estado del pedido;
3) Contenido de atención al usuario;
4) Estas categorías de noticias de marketing.
Al mismo tiempo, en términos de negocio, también hemos llevado a cabo la gestión push: cancelando los mensajes push a los que los usuarios no prestan atención para no molestarlos.
Después de estas optimizaciones, se borran los push que se bloquearon porque excedieron la cuota del fabricante.
Al optimizar la tasa de aceptación de agoo y la tasa de aceptación de los fabricantes, se resuelve el cuello de botella de la llegada push. Pero incluso si finalmente llega el mensaje, ¿el usuario hace clic? Este es el significado fundamental de la mensajería push.
Entonces, en el proceso diario de desarrollo y prueba, descubrimos dos problemas de experiencia con push:
1) Cuando el usuario hace clic en push, se abre un anuncio;
2) Marketing Push también tiene verificación de permiso y los usuarios no pueden hacer clic después de iniciar sesión.
Para la función de anuncios en pantalla abierta, hemos agregado la capacidad de presionar clics y omitir anuncios.
Para la función de verificación de permisos de Push, Xianyu la ha desglosado según escenarios:
1) Para los push que involucran privacidad personal, mantenga la verificación de permisos sin cambios;
2) Promocionar categorías de marketing y publicar comprobaciones de permisos.
Lo anterior es la optimización de la experiencia de clic. También debemos considerar la voluntad del usuario de hacer clic.
El número de clics del usuario está relacionado con la exposición del push y el interés del material push. La exposición de un empujón está relacionada con la llegada y hora de llegada del empujón.
Los métodos de optimización específicos son:
1) En términos de contenido push: lo que necesitamos optimizar es el tiempo y los materiales correspondientes;
2) En Tiempo de inserción: el algoritmo calculará el tiempo de inserción personalizado para cada usuario en función de las preferencias del usuario y los datos de comportamiento personalizados, y realizará la inserción durante el tiempo libre del usuario (para evitar molestar al usuario en momentos inapropiados y también mejorar la experiencia de visualización del usuario). ). a la posibilidad de empujar).
3) Acerca del envío de materiales: el algoritmo realizará carreras de caballos en tiempo real sobre los materiales en función de la retroalimentación de clics en tiempo real de los materiales. Envíe únicamente materiales que interesen a los usuarios para aumentar su disposición a hacer clic.
A través del análisis anterior y la optimización técnica, se ha mejorado el enlace push débil general y la tasa de llegada de mensajes fuera de línea ha aumentado en dos dígitos.
Este artículo trata principalmente sobre la optimización de enlaces débilmente conscientes que son solo una parte del enlace del sistema de mensajes de mensajería instantánea, así como sobre el tema de la tasa de entrega de mensajes sin conexión en servicios específicos.
Todo el sistema de mensajería instantánea sigue siendo un área relativamente compleja.
En el proceso de desarrollo del sistema de mensajería, nos enfrentamos a los siguientes problemas:
1) Cómo rastrear el enlace del mensaje.
2) Cómo; para garantizar la velocidad de llegada de los mensajes de mensajería instantánea (consulte "Práctica de optimización de la puntualidad del sistema de mensajes de mensajería instantánea de Xianyuyi"
3) Cómo separar la jugabilidad del mensaje de las capacidades subyacentes
4); Cómo desconectarse Encuentre el dispositivo correspondiente a través del usuario.
Hemos compartido estos temas en artículos anteriores y compartiremos más en el futuro, así que estad atentos.
[1]? La versión oficial de Android P llegará pronto: una verdadera pesadilla de mantenimiento de aplicaciones en segundo plano y envío de mensajes.
[2]? ¿Práctica de diseño de una solución de arquitectura de chat grupal y de chat único altamente disponible, escalable y de alta concurrencia?
[3] ¿Un conjunto de arquitectura de mensajería instantánea para 100 millones de usuarios? Información técnica (Parte 1): arquitectura general, división de servicios, etc.
[4]? ¿Un conjunto de tecnologías de arquitectura de mensajería instantánea para 100 millones de usuarios (Parte 2): confiabilidad, orden, optimización de red débil, etc.
[5]? De principiante a experto: ¿Cómo diseñar un sistema de mensajería instantánea distribuida con miles de millones de mensajes?
[6] ¿Secretos del diseño de la arquitectura de mensajería instantánea de WeChat empresarial: modelo de mensajes, miles de? personas, leer recibos, retirar mensajes, etc.
[7]?Intercambio de tecnología Rongyun: divulgación completa del mecanismo de entrega confiable de miles de millones de mensajes instantáneos
[8]?Cómo garantizar la eficiencia y eficacia de grupos a gran escala ¿Inserción de mensajes en mensajería instantánea móvil en tiempo real?
[9]? ¿Discusión sobre el esquema de sincronización y almacenamiento de mensajes de chat en los sistemas de mensajería instantánea modernos?
[10] ¿Una introducción para principiantes es suficiente: desarrollar mensajería instantánea móvil desde cero.
[11]?Lectura obligada para desarrolladores de mensajería instantánea móvil (1): Fácil de entender, comprenda la "debilidad" y la "lentitud" de las redes móviles.
[12]?Lectura obligada para desarrolladores de mensajería instantánea móvil (2): el resumen más completo de la historia de los métodos de optimización de redes móviles débiles
[13]?Implementación de la entrega de mensajes de mensajería instantánea Mecanismo de garantía (1): Garantizar la entrega confiable de mensajes en línea en tiempo real.
[14]? Implementación del mecanismo de garantía de entrega de mensajes instantáneos (2): garantizar la entrega confiable de mensajes fuera de línea.
[15]? Introducción al desarrollo de mensajería instantánea de base cero (1): ¿Qué es un sistema de mensajería instantánea?
[16]? Introducción al desarrollo de mensajería instantánea de base cero (2): ¿Cuál es el rendimiento en tiempo real del sistema de mensajería instantánea?
[17]? Introducción al desarrollo de mensajería instantánea de base cero (3): ¿Qué tan confiable es el sistema de mensajería instantánea?
[18]? Introducción al desarrollo de mensajería instantánea de base cero (4): ¿Cuál es la coherencia en el tiempo de los mensajes del sistema de mensajería instantánea?
(Este artículo ha sido publicado simultáneamente en:/thread-3748-1-1.html?)