Microsoft trimmt YARP 1.1 für mehr Leistung bei Web Socket- und gRPC-Streams
Das Update bereitet den Yet Another Reverse Proxy (YARP) auf HTTP/3 vor und liefert neue APIs für Middleware.
Den auf der letztjährigen .NET Conf vorgestellten Reverse Proxy YARP (Yet Another Reverse Proxy) hat Microsoft nun auf Version 1.1 aktualisiert. Das auf .NET aufbauende Open-Source-Projekt steht über NuGet als herunterladbare Library zur Verfügung, die sich für den Bau eines individuell angepassten Proxy-Servers nutzen lässt. Gegenüber der ersten Hauptversion liefert das Update laut Ankündigung einige häufig geforderte Funktionen, darunter erste Vorbereitungen für den Support von HTTP/3 und Performanceoptimierungen beim Verarbeiten von Web-Socket- und gRPC-Streams.
Bessere Skalierung mit Zero Byte Reads
Zero Byte Reads sollen YARP zu einem Leistungsschub beim Proxying von Streams – insbesondere Web Socket und gRPC – verhelfen. Anhand der Null-Byte-Lesevorgänge sollen YARP erkennen können, ob Daten auf dem Stream warten, um dann erst Speicherpuffer für notwendige Lesevorgänge zuzuweisen. Auf diese Weise lasse sich die Skalierbarkeit des Speichers spürbar verbessern, wenn der Reverse Proxy eine große Zahl von Streaming-Anfragen verarbeiten muss.
Bereits zur ersten Hauptversion von YARP hatte Microsoft Support für HTTP/3 in Aussicht gestellt, mit Version 1.1 steht Nutzerinnen und Nutzern des Reverse Proxy auf .NET 6 das Protokoll für eingehende und ausgehende Anfragen zur Verfügung. Voraussetzung dafür ist allerdings, dass die in .NET 6 noch als Preview gekennzeichnete HTTP/3-Funktionalität aktiviert wurde.
Neue Regeln und Konfigurationsoptionen
Das neue Release bietet darüber hinaus nun auch Header-Matching-Regeln für Routen, die das Verarbeiten von Headern mit mehreren Werten oder auch mehrerer Instanzen desselben Header-Namens erlauben. Neue APIs für Middleware eröffnen zudem den Zugriff auf Cluster und Routen in Echtzeit und schaffen die Möglichkeit, den Cluster zu ändern, nachdem das Routing bereits gelaufen ist. YARP-Nutzern soll das vor allem beim Erstellen benutzerdefinierter A/B-Tests und rollierender Upgrade-Systeme helfen.
Ein vollständiger Überblick aller weiteren Neuerungen findet sich im Blogbeitrag von Sam Spencer aus Microsofts .NET-Core-Team. Detaillierte Informationen zum Projekt sowie Download-Ressourcen für YARP liegen im GitHub-Repository parat.
(map)