Wir experimentieren mit verschiedenen Möglichkeiten, um Benutzeraktionen in einem bestimmten Zeitraum zu drosseln :
- Frage / Antwort-Beiträge begrenzen
- Beschränken Sie die Änderungen
- Beschränken Sie das Abrufen von Feeds
Derzeit verwenden wir den Cache, um einfach einen Datensatz der Benutzeraktivität einzufügen. Wenn dieser Datensatz vorhanden ist, wenn der Benutzer dieselbe Aktivität ausführt, drosseln wir.
Durch die automatische Verwendung des Caches werden veraltete Datenbereinigungs- und Schiebeaktivitätsfenster von Benutzern angezeigt. Die Skalierung kann jedoch ein Problem darstellen.
Welche anderen Möglichkeiten gibt es, um sicherzustellen, dass Anforderungen / Benutzeraktionen effektiv gedrosselt werden können (Schwerpunkt auf Stabilität)?
asp.net-mvc
throttling
Jarrod Dixon
quelle
quelle
Antworten:
Hier ist eine generische Version dessen, was wir im letzten Jahr für Stack Overflow verwendet haben:
Beispielnutzung:
Der ASP.NET-Cache funktioniert hier wie ein Champion - wenn Sie ihn verwenden, erhalten Sie eine automatische Bereinigung Ihrer Drosselklappeneinträge. Und mit unserem wachsenden Datenverkehr sehen wir nicht, dass dies ein Problem auf dem Server ist.
Sie können gerne Feedback zu dieser Methode geben. Wenn wir den Stapelüberlauf verbessern, erhalten Sie Ihren Ewok-Fix noch schneller :)
quelle
REMOTE_ADDR
undHTTP_X_FORWARDED_FOR
Servervariablen und saniert angemessen.Microsoft hat eine neue Erweiterung für IIS 7 namens Dynamic IP Restrictions Extension für IIS 7.0 - Beta.
Beispiel:
Wenn Sie die Kriterien festlegen, nach denen blockiert werden soll,
X requests in Y milliseconds
oderX concurrent connections in Y milliseconds
die IP-Adresse für blockiertY milliseconds
wird, werden Anforderungen erneut zugelassen.quelle
<location>
. Es ist jede Anfrage für die App oder keine.Wir verwenden die von dieser URL http://www.codeproject.com/KB/aspnet/10ASPNetPerformance.aspx entliehene Technik nicht zum Drosseln, sondern für den Denial Of Service (DOS) eines armen Mannes. Dies ist auch cache-basiert und ähnelt möglicherweise dem, was Sie tun. Drosseln Sie, um DOS-Angriffe zu verhindern? Router können sicherlich verwendet werden, um DOS zu reduzieren; Glaubst du, ein Router könnte die Drosselung bewältigen, die du brauchst?
quelle