API Gateway Apache APISIX und Kong Auswahlvergleich

API7.ai

January 18, 2020

Products

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.

FunktionenApache APISIXKONG
Dynamisches UpstreamJaJa
Dynamischer RouterJaJa
Health CheckJaJa
Dynamisches SSLJaJa
L4- und L7-ProxyJaJa
OpentracingJaJa
Benutzerdefinierte PluginsJaJa
REST APIJaJa
CLIJaJa

Für einen detaillierteren Vergleich.

FunktionenApache APISIXKong
Gehört zuApache Software FoundationKong Inc.
Technische ArchitekturNginx + etcdNginx + postgres
KommunikationskanäleMailingliste, Wechat-Gruppe, QQ-Gruppe, GitHub, MeetupGitHub, freenode, Forum
Single-Core-CPU, QPS (mit aktivierten limit-count- und prometheus-Plugins)180001700
Latenz0,2 ms2 ms
DubboJaNein
Konfigurations-RollbackJaNein
Route mit TTLJaNein
Plugin-Hot-LoadingJaNein
Benutzerdefinierte LB und RouteJaNein
REST API <--> gRPC-TranscodierungJaNein
TengineJaNein
MQTTJaNein
KonfigurationswirksamkeitszeitEreignisgesteuert, < 1msPolling, 5 Sekunden
DashboardJaNein
IdPJaNein
Konfigurationszentrum HAJaNein
Geschwindigkeitsbegrenzung für ein bestimmtes ZeitfensterJaNein
Unterstützung beliebiger Nginx-Variablen als Routing-BedingungJaNein

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:

  1. 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.

  2. 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.

  3. Das Routing von Apache APISIX akzeptiert alle Variablen von Nginx als Bedingungen und unterstützt benutzerdefinierte Funktionen; andere Gateways haben mehrere eingebaute Bedingungen.

  4. 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.

  5. 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.

  6. Die Plugins von Apache APISIX wurden sorgfältig optimiert, um unter hohem Druck eine Millisekunden-Latenz beizubehalten.

  7. Die einzigartige Plugin-Anordnung und die Low-Code-Funktion von Apache APISIX können die Schwelle für die Weiterentwicklung erheblich senken.

Weiterführende Lektüre

Tags: