Estamos experimentando con varias formas de limitar las acciones del usuario en un período de tiempo determinado :
- Limite las publicaciones de preguntas / respuestas
- Limitar ediciones
- Limite las recuperaciones de alimento
Por el momento, estamos usando la caché para simplemente insertar un registro de la actividad del usuario; si ese registro existe si / cuando el usuario realiza la misma actividad, aceleramos.
El uso de la caché nos da automáticamente ventanas de actividad de limpieza de datos obsoletas y deslizantes de los usuarios, pero la forma en que se escalará podría ser un problema.
¿Cuáles son algunas otras formas de garantizar que las solicitudes / acciones del usuario puedan ser efectivamente aceleradas (énfasis en la estabilidad)?
asp.net-mvc
throttling
Jarrod Dixon
fuente
fuente
Respuestas:
Aquí hay una versión genérica de lo que hemos estado usando en Stack Overflow durante el año pasado:
Uso de la muestra:
La caché de ASP.NET funciona como un campeón aquí: al usarla, obtienes una limpieza automática de tus entradas del acelerador. Y con nuestro tráfico creciente, no vemos que esto sea un problema en el servidor.
Siéntase libre de dar su opinión sobre este método; cuando mejoramos Stack Overflow, obtienes tu solución Ewok aún más rápido :)
fuente
REMOTE_ADDR
yHTTP_X_FORWARDED_FOR
variables de servidor y desinfecta apropiadamente.Microsoft tiene una nueva extensión para IIS 7 llamada Dynamic IP Restrictions Extension para IIS 7.0 - Beta.
Ejemplo:
Si establece los criterios para bloquear después
X requests in Y milliseconds
oX concurrent connections in Y milliseconds
la dirección IP se bloqueará,Y milliseconds
entonces las solicitudes se permitirán nuevamente.fuente
<location>
. Es cada solicitud de la aplicación o ninguna.Utilizamos la técnica prestada de esta URL http://www.codeproject.com/KB/aspnet/10ASPNetPerformance.aspx , no para limitar, sino para la Denegación de servicio (DOS) de un pobre. Esto también está basado en caché y puede ser similar a lo que está haciendo. ¿Estás acelerando para prevenir ataques de DOS? Los enrutadores ciertamente pueden usarse para reducir DOS; ¿Crees que un enrutador podría manejar la aceleración que necesitas?
fuente