API Gateway Apache APISIX と Kong の選択比較

API7.ai

January 18, 2020

Products

Apache APISIXとKongは、どちらもオープンソースのマイクロサービスAPIゲートウェイです。では、これらをどのように比較し、選択すればよいのでしょうか?

これらのプロジェクトは、完全なドキュメントとテストでカバーされており、多くのプロダクションユーザーが使用しているため、安定性や持続可能な開発について心配する必要はありません。この記事では、最も直接的で検証可能な機能とパフォーマンスに焦点を当て、異なる視点から比較を行います。

機能Apache APISIXKONG
ダイナミックアップストリームはいはい
ダイナミックルーターはいはい
ヘルスチェックはいはい
ダイナミックSSLはいはい
L4およびL7プロキシはいはい
Opentracingはいはい
カスタムプラグインはいはい
REST APIはいはい
CLIはいはい

より詳細な比較は以下の通りです。

機能Apache APISIXKong
所属Apache Software FoundationKong Inc.
技術アーキテクチャNginx + etcdNginx + postgres
コミュニケーションチャネルメーリングリスト、Wechatグループ、QQグループ、GitHub、ミートアップGitHub、freenode、フォーラム
シングルコアCPU、QPS(limit-countおよびprometheusプラグイン有効時)180001700
レイテンシー0.2 ms2 ms
Dubboはいいいえ
設定ロールバックはいいいえ
TTL付きルートはいいいえ
プラグインホットローディングはいいいえ
カスタムLBおよびルートはいいいえ
REST API <--> gRPCトランスコーディングはいいいえ
Tengineはいいいえ
MQTTはいいいえ
設定有効時間イベント駆動、< 1msポーリング、5秒
ダッシュボードはいいいえ
IdPはいいいえ
設定センターHAはいいいえ
指定時間ウィンドウでの速度制限はいいいえ
Nginx変数をルーティング条件としてサポートはいいいえ

パフォーマンス

limit-countおよびprometheusプラグインを有効にした後、Apache APISIXのパフォーマンスはKongの10倍です。

詳細な手順はこちら:https://gist.github.com/membphis/137db97a4bf64d3653aa42f3e016bd01、興味のある開発者は画像を参照して検証できます。

なぜApache APISIXが優れているのか?

ここでは、機能とパフォーマンスの違いの背後にある理由について説明します:

  1. Apache APISIXのルーティングの複雑さはO(k)で、uriの長さのみに関係し、ルートの数とは無関係です。Kongのルーティングの時間複雑さはO(n)で、ルートの数に比例して増加します。

  2. Apache APISIXのIPマッチングの時間複雑さはO(1)で、大量のIP判断を行ってもCPUリソースを使い果たすことはありません。

  3. Apache APISIXのルートマッチングは、Nginxのすべての変数を条件として受け入れ、カスタム関数をサポートします。他のゲートウェイにはいくつかの組み込み条件があります。

  4. Apache APISIXはetcdを設定センターとして使用します。単一障害点がなく、任意のマシンがダウンしてもゲートウェイクラスターは正常に動作します。リレーショナルデータベースに基づく他のゲートウェイは単一障害点の問題を抱えています。

  5. Apache APISIXの設定は、etcd watchを使用して1ミリ秒以内にすべてのゲートウェイノードに到達します。他のゲートウェイは定期的にデータベースをポーリングし、最新の設定を取得するのに通常5秒かかります。

  6. Apache APISIXのプラグインは、高負荷下でもミリ秒レベルのレイテンシーを維持するように慎重に調整されています。

  7. Apache APISIXの独自のプラグイン配置とローコード機能により、二次開発のハードルを大幅に下げることができます。

さらに読む

Tags: