[ Herausgeber – Dieser Beitrag wurde mit Informationen zu den überarbeiteten Berichten aktualisiert, die in rtapi
Version 0.2.0 eingeführt wurden.]
APIs bilden das Herzstück moderner Anwendungen und sich entwickelnder digitaler Architekturen. Laut dem Akamai State of the Internet Security Report machen API-Aufrufe 83 % des gesamten Webverkehrs aus. In der heutigen Landschaft, in der es für Verbraucher so einfach ist, zu einem digitalen Konkurrenten zu wechseln, ist es für sie von größter Bedeutung, positive Erfahrungen mit Ihrer Website oder App zu machen. Geschwindigkeit hat einen hohen Stellenwert und wird letztendlich durch reaktionsschnelle, gesunde und anpassbare APIs vorangetrieben. Wenn Sie das richtig machen – Ihre API ist schneller als die Ihrer Konkurrenten – werden sich die Entwickler für Sie entscheiden.
Laut dem IDC-Bericht „APIs – The Determining Agents Between Success or Failure of Digital Business“ erwarten über 90 % der Organisationen eine Latenz von weniger als 50 Millisekunden (ms), während fast 60 % eine Latenz von 20 ms oder weniger erwarten. (Latenz ist definiert als die Zeit, die Ihre API-Infrastruktur benötigt, um auf einen API-Aufruf zu reagieren – vom Zeitpunkt, an dem eine Anfrage beim API-Gateway eintrifft, bis zu dem Zeitpunkt, an dem das erste Byte einer Antwort an den Client zurückgegeben wird.)
Wir haben diese Daten zusammen mit einigen End-to-End -Analysen des API-Lebenszyklus verwendet, um eine Echtzeit-API als eine API mit einer Latenz von 30 ms oder weniger zu definieren. Darüber hinaus muss die Latenzschwelle von 30 ms bis zum 99. Perzentil der verarbeiteten Anfragen eingehalten werden (was bedeutet, dass im Durchschnitt nur 1 von 100 Anfragen länger als 30 ms dauert). Weitere Einzelheiten finden Sie in unserem Blog zum Leistungsbenchmarking von API-Verwaltungslösungen .
Für die meisten Unternehmen stellt es eine große Herausforderung dar, API-Aufrufe möglichst in Echtzeit zu verarbeiten, insbesondere wenn sie architektonisch komplexe API-Gateways als Einstiegspunkte zu ihren API-Endpunkten verwenden. Also, wie schneiden Ihre APIs ab? Sind sie bereits schnell genug, um als Echtzeit zu gelten, oder müssen sie verbessert werden? Fühlt sich Ihr Produkt etwas träge an, aber Sie können nicht genau sagen, woran das liegt? Vielleicht wissen Sie nicht genau, wie Ihre API-Latenz aussieht?
Geben Sie rtapi
ein – ein von NGINX entwickeltes Echtzeit-Benchmarking-Tool für API-Latenz, das die Reaktionsfähigkeit Ihrer API-Gateways und -Endpunkte testet und Berichte erstellt, die Sie problemlos an Ihre Kollegen verteilen und weitergeben können. Es stehen zwei Berichtsformate zur Verfügung: ein PDF mit einem Übersichtsdiagramm und eine ASCII-formatierte Tabelle mit detaillierten Messwerten.
rtapi
Laden Sie die rtapi-
Binärdatei mit einer der beiden Methoden von GitHub herunter:
Wenn Sie Golang installiert haben, führen Sie diesen Befehl aus:
$ gehe zu github.com/nginxinc/rtapi
Geben Sie einen oder mehrere API-Endpunkte ( Ziele ) an, die Sie abfragen möchten, im JSON- oder YAML-Format, wie in den folgenden Beispielen. Wir empfehlen, JSON oder YAML in einer Datei namens endpoints.json oder endpoints.yml zu speichern. (Für JSON können Sie die Daten im nächsten Schritt auch in die rtapi
-Befehlszeile als Parameter für das Flag --data
einschließen.)
Die einzigen erforderlichen Parameter für jeden Endpunkt sind target.url
und target.method
. Wenn Sie target.body
und target.header
nicht angeben, bleiben sie leer. Wenn Sie im query_parameters-
Objekt keinen Parameter angeben, verwendet rtapi
dafür den (Standard-)Wert, der in den folgenden Beispielen angezeigt wird.
Beispiel für JSON-Eingabe
[
{
"Ziel": {
"URL": "https://www.example.com",
"Methode": "POST",
"body": "{\"id\":\"0\"}",
"header": {
"Content-Type": [
"application/json"
]
}
},
"query_parameters": {
"threads": 2,
"max_threads": 2,
„Verbindungen“: 10,
„Dauer“: "10s",
"Anfragerate": 500
}
}
]
Beispiel für YAML-Eingabe
- Ziel: URL: https://example.com/api/id
Methode: POST
Text: '{"id":"0"}'
Header:
Inhaltstyp:
- application/json
Abfrageparameter:
Threads: 2
max_threads: 2
Verbindungen: 12
Dauer: 10 s
Anfragerate: 500
Führen Sie den folgenden Befehl aus, wobei --file
die Datei benennt, die die JSON/YAML-formatierte Liste der API-Endpunkte enthält, und --output
den von rtapi
zu generierenden PDF-Bericht benennt. (Wie in Schritt 2 erwähnt, können Sie JSON-Eingabe in der Befehlszeile bereitstellen: Ersetzen Sie --file
endpoints.json
durch --data,
gefolgt von der JSON-Zeichenfolge.)
$ rtapi --file endpoints.json --output report.pdf
Um die ASCII‑formatierte Tabelle mit Messdaten im Terminal anzuzeigen, fügen Sie anstelle des Flags –output (oder zusätzlich dazu) das Flag –print
ein
.
$ rtapi --file endpoints.json --print
Der von rtapi
generierte PDF-Bericht enthält ein HDR-Histogramm der Antwortlatenz wie das folgende (von einem NGINX Plus API-Gateway, das mit dem NGINX Controller API Management Module konfiguriert wurde). Die Y-Achse zeigt die Latenz in Millisekunden und die X-Achse zeigt den Anteil der Anrufe, die in weniger als einer bestimmten Latenz verarbeitet werden, ausgedrückt als Perzentil. (Im folgenden Beispiel haben wir die Y-Achse aus Platzgründen komprimiert.)
Um die Ergebnisse für Ihre API hervorzuheben, schneiden sich die gestrichelten Linien, die parallel zu den Achsen verlaufen, um die gemessene Latenz Ihrer API beim 99. Perzentil ( 99 % im Diagramm) anzuzeigen. Damit Ihre API als Echtzeit-API gilt, muss die Latenz an der Schnittstelle weniger als 30 ms betragen.
Liegt die Latenz Ihrer API unter 30 ms?
Wenn es Ihnen wie vielen anderen Unternehmen geht, mit denen wir sprechen, ist dies wahrscheinlich nicht der Fall. Bei vielen API-Gateway- und API-Management-Lösungen ist eine Latenz von 100 ms üblich, und selbst 500 ms sind nicht ungewöhnlich.
Wir können Ihnen helfen, die Leistung Ihrer API zu verbessern – NGINX und NGINX Plus sind die schnellsten API-Gateways der Branche und können Ihnen zusammen mit dem NGINX Controller dabei helfen, API-Aufrufe in weniger als 30 ms zu routen, zu authentifizieren, zu sichern, zu gestalten und zwischenzuspeichern. Erfahren Sie mehr, sprechen Sie mit einem NGINX-Experten und entdecken Sie unter nginx.com/real-time-api , wie NGINX Sie auf Ihrem Weg zu Echtzeit-APIs unterstützen kann.
„Dieser Blogbeitrag kann auf Produkte verweisen, die nicht mehr verfügbar und/oder nicht mehr unterstützt werden. Die aktuellsten Informationen zu verfügbaren F5 NGINX-Produkten und -Lösungen finden Sie in unserer NGINX-Produktfamilie . NGINX ist jetzt Teil von F5. Alle vorherigen NGINX.com-Links werden auf ähnliche NGINX-Inhalte auf F5.com umgeleitet."