Bandbreitenbegrenzung in ASP.NET Core
18.09.2023, 00:00 Uhr
Blockabfertigung für den Massenansturm
Lastschutz mit ASP.NET Core: Rate Limiting begrenzt die zeitgleichen Zugriffe.
Dass eine ganz bestimmte Branche offenbar sehr krisenresistent ist, hat sich im Sommer 2023 gezeigt: Konzerte in großen Stadien. Die Vorverkäufe von Taylor Swift, Depeche Mode und Coldplay brachen so manchen Rekord, die verfügbaren Kontingente waren mitunter binnen weniger Minuten verkauft. Für die Technikteams hinter den Onlineshops sind solche Vorverkäufe immer eine besondere Herausforderung, weil eine große Anzahl von Personen gleichzeitig mit der Webanwendung interagieren will. Mit Augenzwinkern betrachtet gibt es hierfür einen passenden Fachbegriff: DDoS, Distributed Denial of Service. Und in der Tat haben in der Vergangenheit diese extremen Lastspitzen für den ein oder anderen Ausfall des Ticketsystems gesorgt [1].
Zugegebenermaßen ist das kein einfach zu lösendes Problem. Die vermehrten Zugriffe ließen sich durch Hochskalieren handhaben, aber eine weitere Herausforderung ist die Datenhaltung: Welche Plätze sind im Warenkorb, welche schon verkauft, welche noch verfügbar? Ein Ansatz, der mittlerweile von fast allen Ticketshops gefahren wird, ist die Implementierung eines virtuellen Warteraums (siehe Bild 1). In diesem werden Kaufwillige gehalten und dann peu à peu in den eigentlichen Shop vorgelassen. So hat der Shop selbst eine halbwegs prognostizierbare Maximallast, und für alle, die warten müssen, gibt es zumindest eine Art von Fortschrittsanzeige oder sogar die Information über die Anzahl der Personen vor einem in der Schlange. Solche Warteräume sind latent unbeliebt, aber sie bilden einfach die Realität ab, dass ein begrenztes Angebot auf eine weitaus größere Nachfrage trifft und das Ganze dann auch noch technisch handhabbar sein soll.
Jetzt 1 Monat kostenlos testen!
Sie wollen zukünftig auch von den Vorteilen eines plus-Abos profitieren? Werden Sie jetzt dotnetpro-plus-Kunde.
- + Digitales Kundenkonto,
- + Zugriff auf das digitale Heft,
- + Zugang zum digitalen Heftarchiv,
- + Auf Wunsch: Weekly Newsletter,
- + Sämtliche Codebeispiele im digitalen Heftarchiv verfügbar