API Gateway Apache APISIX und Kong Auswahlvergleich
API7.ai
January 18, 2020
Apache APISIX und Kong sind beide Open-Source-Microservice-API-Gateways. Wie vergleicht und wählt man zwischen ihnen?
Diese beiden Projekte verfügen über umfassende Dokumentation und Tests, und viele Produktionsbenutzer setzen sie ein. Daher müssen Sie sich keine Sorgen über die Stabilität und ihre nachhaltige Entwicklung machen. Dieser Artikel konzentriert sich auf die direktesten und überprüfbaren Funktionen und Leistungen, um einen Vergleich aus einer anderen Perspektive zu ermöglichen.
Diese beiden Projekte verfügen über umfassende Dokumentation und Tests, und viele Produktionsbenutzer setzen sie ein. Daher müssen Sie sich keine Sorgen über die Stabilität und ihre nachhaltige Entwicklung machen. Dieser Artikel konzentriert sich auf die direktesten und überprüfbaren Funktionen und Leistungen, um einen Vergleich aus einer anderen Perspektive zu ermöglichen.
Funktionen | Apache APISIX | KONG |
---|---|---|
Dynamisches Upstream | Ja | Ja |
Dynamischer Router | Ja | Ja |
Health Check | Ja | Ja |
Dynamisches SSL | Ja | Ja |
L4- und L7-Proxy | Ja | Ja |
Opentracing | Ja | Ja |
Benutzerdefinierte Plugins | Ja | Ja |
REST API | Ja | Ja |
CLI | Ja | Ja |
Für einen detaillierteren Vergleich.
Funktionen | Apache APISIX | Kong |
---|---|---|
Gehört zu | Apache Software Foundation | Kong Inc. |
Technische Architektur | Nginx + etcd | Nginx + postgres |
Kommunikationskanäle | Mailingliste, Wechat-Gruppe, QQ-Gruppe, GitHub, Meetup | GitHub, freenode, Forum |
Single-Core-CPU, QPS (mit aktivierten limit-count- und prometheus-Plugins) | 18000 | 1700 |
Latenz | 0,2 ms | 2 ms |
Dubbo | Ja | Nein |
Konfigurations-Rollback | Ja | Nein |
Route mit TTL | Ja | Nein |
Plugin-Hot-Loading | Ja | Nein |
Benutzerdefinierte LB und Route | Ja | Nein |
REST API <--> gRPC-Transcodierung | Ja | Nein |
Tengine | Ja | Nein |
MQTT | Ja | Nein |
Konfigurationswirksamkeitszeit | Ereignisgesteuert, < 1ms | Polling, 5 Sekunden |
Dashboard | Ja | Nein |
IdP | Ja | Nein |
Konfigurationszentrum HA | Ja | Nein |
Geschwindigkeitsbegrenzung für ein bestimmtes Zeitfenster | Ja | Nein |
Unterstützung beliebiger Nginx-Variablen als Routing-Bedingung | Ja | Nein |
Leistung
Nach der Aktivierung der limit-count- und prometheus-Plugins ist die Leistung von Apache APISIX zehnmal höher als die von Kong.
Hier sind detailliertere Schritte: https://gist.github.com/membphis/137db97a4bf64d3653aa42f3e016bd01. Interessierte Entwickler können dem Bild folgen, um dies zu überprüfen.
Warum übertrifft Apache APISIX?
Hier diskutieren wir die Gründe hinter den Unterschieden in Funktionalität und Leistung:
-
Die Routing-Komplexität von Apache APISIX beträgt O(k), was nur mit der Länge des URI zusammenhängt und nichts mit der Anzahl der Routen zu tun hat; die Routing-Zeitkomplexität von Kong beträgt O(n), die linear mit der Anzahl der Routen zunimmt.
-
Die Zeitkomplexität der IP-Zuordnung von Apache APISIX beträgt O(1), wodurch CPU-Ressourcen auch bei einer großen Anzahl von IP-Prüfungen nicht erschöpft werden.
-
Das Routing von Apache APISIX akzeptiert alle Variablen von Nginx als Bedingungen und unterstützt benutzerdefinierte Funktionen; andere Gateways haben mehrere eingebaute Bedingungen.
-
Apache APISIX verwendet etcd als Konfigurationszentrum. Es gibt keinen Single Point of Failure. Wenn eine Maschine ausfällt, kann das Gateway-Cluster weiterhin normal arbeiten. Andere Gateways, die auf relationalen Datenbanken basieren, haben ein Single-Point-Problem.
-
Die Konfiguration von Apache APISIX erreicht alle Gateway-Knoten innerhalb von 1 Millisekunde, indem etcd watch verwendet wird; andere Gateways pollen die Datenbank regelmäßig, und es dauert normalerweise 5 Sekunden, um die neueste Konfiguration zu erhalten.
-
Die Plugins von Apache APISIX wurden sorgfältig optimiert, um unter hohem Druck eine Millisekunden-Latenz beizubehalten.
-
Die einzigartige Plugin-Anordnung und die Low-Code-Funktion von Apache APISIX können die Schwelle für die Weiterentwicklung erheblich senken.