Preguntas de entrevista de alta simultaneidad

Actualmente, existen dos algoritmos de limitación que se utilizan comúnmente en el desarrollo de programas: el algoritmo de depósito con fugas y el algoritmo de depósito de tokens.

Cubo con fugas

El principio del balde con fugas es relativamente simple. Requiere ingresar al balde con fugas, y el balde con fugas perderá agua a un ritmo determinado. Cuando hay demasiadas peticiones, el agua se desborda. Se puede ver que los depósitos con fugas pueden obligar a limitar la velocidad de transmisión de datos. Como se muestra en la figura, la solicitud se compara con una gota de agua. El agua primero cae en el balde, pasa por el agujero y sale a una velocidad limitada. Si el agua entra con demasiada fuerza y ​​no sale lo suficientemente rápido, provocará que el agua se desborde directamente, lo que constituye una denegación de servicio.

La imagen procede de Internet.

La velocidad de descarga de agua del balde con fugas es constante, lo que significa que si el tráfico instantáneo es grande, la mayoría de las solicitudes se descartarán (el llamado desbordamiento).

Algoritmo de depósito de tokens

El principio del algoritmo de depósito de tokens es que el sistema coloca tokens en el depósito a una velocidad determinada. Si hay una solicitud, la solicitud tomará el token del depósito. Si puede obtener el token, puede proceder a completar la solicitud; de lo contrario, esperará o negará el servicio. Este algoritmo es mejor que el algoritmo del depósito con fugas porque puede manejar solicitudes en ráfagas.

La imagen procede de Internet.

Selección de algoritmos de depósito con fugas y depósito de tokens

La principal diferencia entre los dos es que el depósito con fugas puede limitar por la fuerza la velocidad de procesamiento de datos, independientemente de si el sistema está inactivo. El algoritmo del depósito de tokens puede limitar la velocidad promedio de procesamiento de datos y al mismo tiempo permitir algo de tráfico en ráfagas. ¿Cómo entender el significado anterior? Balde con fugas, por ejemplo, el rendimiento del sistema es 120/s y la solicitud comercial es 130/s. Utilice un embudo para limitar el tráfico y las solicitudes excedentes se esperarán o descartarán. Para el algoritmo del depósito de tokens, se generan 100 tokens por segundo y la capacidad del sistema es de 200 tokens. En circunstancias normales, cuando la solicitud de servicio es 100/s, la solicitud se puede procesar normalmente. Cuando hay una ráfaga de tráfico, como 200 solicitudes, debido a la capacidad del sistema, hay 200 tokens que pueden manejar estas 200 solicitudes al mismo tiempo. En el caso de un depósito con fugas, solo se pueden procesar 100 solicitudes y otras solicitudes quedan en espera o se descartan.

div class="copyright">

copyright 2024 Red idiomática china All rights reserved