En los sistemas, los clientes y los servidores se comunican juntos en los que el cliente solicita y el servidor responde al cliente respectivo con los datos solicitados. Ahora puede haber opciones sobre con qué frecuencia necesito actualizar los datos. Bueno, todo depende de su propósito y su sistema. Aquí vamos a discutir dos conceptos básicos, Polling y Streaming.
Votación
Se define como el proceso cuando un cliente solicita un dato en particular a intervalos regulares (quizás cada x segundos) y el servidor revierte con una respuesta habitual con los datos requeridos.
En estos escenarios, donde el cliente necesita actualizar los datos (obtener los datos del servidor) regularmente en modo instantáneo, es posible que el sondeo no beneficie a su arquitectura. Ejemplo: está creando una aplicación de chat en la que tiene muchos clientes que deben comunicarse entre sí en tiempo real. Como experto en diseño de sistemas , debe asegurarse de que el cliente reciba las actualizaciones instantáneamente (aquí las actualizaciones significan chats, txt, mensajes). Pero Polling no es adecuado en todas partes como un ejemplo de Chatbox, necesita recibir el mensaje instantáneo a medida que el otro extremo lo envía, pero debido al intervalo establecido de x segundos, no puede obtener la sensación instantánea de los mensajes y sus mensajes se sentirían como muchos retrasos
La mejor idoneidad de Polling puede ser obtener actualizaciones de temperatura tal vez 30 seg/1 min en intervalos regulares.
Transmisión
La transmisión se realiza a través de sockets, puede obtener información detallada sobre los sockets aquí. En términos sencillos, los sockets son un archivo en el que su computadora puede escribir/leer en una conexión de ancho largo con otra computadora, una conexión abierta hasta que una máquina la apague.
Ej: diseñar una aplicación de chat como WhatsApp/Instagram y muchas otras
Aquí puede pensar en la opción de reducir los intervalos establecidos y usar Polling en lugar de Streaming, es decir, puede pensar en reducir los intervalos establecidos a 1 seg/0,5 seg y en 10 segundos está solicitando hasta 20 requests para un solo cliente. , y para millones de clientes, esto crearía un problema para que nuestro servidor maneje estas requests al mismo tiempo. Aquí debe tener en cuenta que puede obtener la experiencia instantánea en los mensajes, pero esto no es óptimo, ya que crearía mucha más carga para un servidor.
Punto clave: en Polling, para una respuesta de un servidor, se envía cada solicitud, pero en transmisión, el cliente escucha abiertamente sin una solicitud externa de datos del servidor. En el lado del servidor, para la transmisión, no esperará a que se envíen los datos para cada solicitud, sino que enviará los datos a medida que note cualquier cambio. A través de la transmisión, puede obtener una experiencia instantánea de chatear sin demora ni enviar de 10 a 20 requests por segundo por cliente.
Escenarios
Cuando el procesamiento del lado del cliente es más lento, pueden ocurrir diferentes escenarios en el caso de Polling y Streaming.
En Streaming , las actualizaciones formarían una larga cola en el extremo del cliente y tan pronto como reciba el primer evento, el servidor enviará el siguiente y luego el siguiente de forma continua hasta el final, habrá un retraso debido a un procesamiento deficiente, pero no habrá t ser cualquier tipo de esporádico en los datos.
En Sondeo , los procesos tardarían algún tiempo en actualizarse. Tan pronto como termine uno, pedirá otro y lo responderá de inmediato. El servidor siempre intenta ser robusto y mantener las conexiones de transmisión en funcionamiento; si no puede escribir, simplemente esperará y posiblemente filtrará las actualizaciones.
Nota: Streaming no es mejor que Polling, Polling podría ser mejor que streaming. Todo depende de su caso de uso y sistema.
Regla general: si necesita que sus datos se actualicen instantáneamente (actualizaciones en vivo), entonces desea usar la transmisión, y si está creando un tablero que monitorea los precios de las acciones o tiene un caso de uso de este tipo aquí, es posible que prefiera sondear ya que no hay necesidad real de conexión abierta y cada 30 segundos puede obtener los datos actualizados.
Publicación traducida automáticamente
Artículo escrito por iharshit009 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA