Diseño de chat en línea: cómo diseñar la arquitectura del servidor para que cientos de miles de personas conversen en línea en una sala de transmisión en vivo al mismo tiempo
¿Cómo diseñar el módulo de chat de la APLICACIÓN?
El sistema de chat en línea está dirigido principalmente a algunos grupos de usuarios jóvenes y grupos que tienen una mayor demanda de comunicación en tiempo real y no real. comunicación de tiempo debido a necesidades laborales. Cómo Baidu diseña componentes de aplicaciones para sistemas de chat en línea
El componente de instalación registra un servicio separado para instalarlo en el sistema y conoce la existencia del servicio con el administrador de control de servicios. Al utilizar una aplicación con este servicio, puede seleccionar un enlace en la ventana Propiedades para agregar automáticamente el instalador correspondiente al proyecto. Para obtener más información sobre los componentes instalados y el trabajo de ensamblaje, consulte Instalación de componentes. Tenga en cuenta... cómo diseñar la arquitectura del servidor para que cientos de miles de personas conversen en una sala de transmisión en vivo al mismo tiempo
Cientos de miles de personas son realmente muchas. . .
Primero considere la capa de conexión del cliente. Teniendo en cuenta el rendimiento y las limitaciones de socket de un servidor, se recomienda utilizar el equilibrio de carga para distribuir clientes de diferentes canales a diferentes conectores de front-end. Se puede considerar el conector En la arquitectura del grupo de subprocesos libevent +, los mensajes se serializan usando protobuf.
En segundo plano, puede considerar usar redis más kafka para completar la administración de sesiones y la distribución de mensajes, porque es posible que haya demasiados mensajes. Afecta el rendimiento de Kafka, se recomienda enviar mensajes a la prioridad A. Proporcione un grupo de mensajes a los mensajes de baja prioridad. Además, dado que los mensajes se generarán y publicarán en grandes cantidades, la sobrecarga de la gestión de memoria ordinaria es demasiado alta y la fragmentación será grave. Se recomienda utilizar TCMalloc como asignador de memoria o escribir una losa usted mismo. Debe convertir Redis en un MS tanto como sea posible. Las sesiones de usuario se pueden administrar de forma centralizada.