クラスタ詳細-Kongゲートウェイを遊ぶ
2226 ワード
クラスタを使用すると、システムを水平に拡張し、より多くのマシンを追加することで、より多くの受信要求を処理できます.同じデータベースを指すため、同じ構成が共有されます.同じデータストレージを指すKongノードは、同じクラスタの一部になります.
Kongクラスタの前に負荷バランサを配置して、異なる使用可能なノードにストリームを割り当てる必要があります.
Kongクラスタは何ができますか?何ができませんか?
Kongクラスタを使用すると、クライアントトラフィックがKongノードにすぐに均等に負荷されるわけではありません.Kongノードの前には、トラフィックを割り当てるための負荷バランサが必要です.1つのクラスタは、これらのノードが同じ構成を共有することを意味します.
パフォーマンス上の理由から、Kongはプロキシリクエスト時に頻繁なデータベース接続を回避し、構成データをローカルにキャッシュします.キャッシュされたエンティティには、サービス、ルーティング、消費者、プラグイン、証明書などが含まれます.これらの値はすべてメモリに含まれているため、1つのノードの管理APIによって行われた変更は、他のノードに伝播する必要があります.
このドキュメントでは、キャッシュされたエンティティがどのように失効し、パフォーマンスと一貫性をバランスさせるかについて説明します.
単一ノードKongクラスタ
データベース(CassandraまたはPostgreSQL)にリンクされた単一ノードKongクラスタを作成します.このノードを介してAPIアプリケーションを管理する変更は、すぐに有効になります.
マルチノードKongクラスタ
マルチノードKongクラスタでは,ノード
すべてのノードは、他のノードがトリガーした変更と同期して、最終的な一貫性を維持するタイミングタスクを実行します.この作業の頻度は、次のように構成できます. db_update_frequency(デフォルト:5秒) 何がキャッシュされますか?
サービス、ルーティング、プラグイン、消費者、証明書などのすべてのコアエンティティがメモリに格納され、ポーリングメカニズムによって有効性が更新されます.
データベース・キャッシュの構成方法
Kongプロファイルでは、3つのプロパティを構成できます.最も重要なのは
1. db_update_frequency (default: 5s) 2. db_update_propagation (default: 0s) 3. db_cache_ttl (default: 3600s)
この3つのパラメータの詳細は、詳細を構成する-Kongゲートウェイを遊ぶ
4.Cassandraを使用する場合
CassandraをKongのデータベースとして使用する場合は、
また、
管理APIによるキャッシュとのインタラクション
Kongdのキャッシュは、API
キャッシュ値の取得
リクエストアドレス:/cache/:cache_key要求方法:GET
キャッシュ値のクリーンアップ
リクエストアドレス:/cache/:cache_key要求方法:DELETE
ノードのキャッシュのクリーンアップ
リクエストアドレス:/cacheリクエストメソッド:DELETE
お知らせ
キャッシュAPIは、上記の3つの操作のみをサポートし、上記のバンド
シャトル:オープンソースAPIゲートウェイシステム(Kongチュートリアル)に精通
Kongクラスタの前に負荷バランサを配置して、異なる使用可能なノードにストリームを割り当てる必要があります.
Kongクラスタは何ができますか?何ができませんか?
Kongクラスタを使用すると、クライアントトラフィックがKongノードにすぐに均等に負荷されるわけではありません.Kongノードの前には、トラフィックを割り当てるための負荷バランサが必要です.1つのクラスタは、これらのノードが同じ構成を共有することを意味します.
パフォーマンス上の理由から、Kongはプロキシリクエスト時に頻繁なデータベース接続を回避し、構成データをローカルにキャッシュします.キャッシュされたエンティティには、サービス、ルーティング、消費者、プラグイン、証明書などが含まれます.これらの値はすべてメモリに含まれているため、1つのノードの管理APIによって行われた変更は、他のノードに伝播する必要があります.
このドキュメントでは、キャッシュされたエンティティがどのように失効し、パフォーマンスと一貫性をバランスさせるかについて説明します.
単一ノードKongクラスタ
データベース(CassandraまたはPostgreSQL)にリンクされた単一ノードKongクラスタを作成します.このノードを介してAPIアプリケーションを管理する変更は、すぐに有効になります.
マルチノードKongクラスタ
マルチノードKongクラスタでは,ノード
A
が修正された.同じデータベースに接続されている他のノードは、すぐに変更を通知されません.サービスはデータベースで変更されましたが、他のノードのメモリに残っています.すべてのノードは、他のノードがトリガーした変更と同期して、最終的な一貫性を維持するタイミングタスクを実行します.この作業の頻度は、次のように構成できます.
サービス、ルーティング、プラグイン、消費者、証明書などのすべてのコアエンティティがメモリに格納され、ポーリングメカニズムによって有効性が更新されます.
データベース・キャッシュの構成方法
Kongプロファイルでは、3つのプロパティを構成できます.最も重要なのは
db_update_frequency
で、Kongノードのパフォーマンスと一貫性のバランスを決定します.1. db_update_frequency (default: 5s) 2. db_update_propagation (default: 0s) 3. db_cache_ttl (default: 3600s)
この3つのパラメータの詳細は、詳細を構成する-Kongゲートウェイを遊ぶ
4.Cassandraを使用する場合
CassandraをKongのデータベースとして使用する場合は、
db_update_propagation
の値を設定する必要があります.Cassandraの生まれつきの最終的な一貫性のため、Kongノードは更新されていないエンティティを取得するためにキャッシュを早期にクリーンアップしないことを保証します.設定しない場合、Kongは警告メッセージを表示します.また、
cassandra_consistency
の値はQUORUM
またはLOCAL_QUORUM
であり、Kongノードキャッシュの値がデータベースからの最新値であることを確認することが望ましい.管理APIによるキャッシュとのインタラクション
Kongdのキャッシュは、API
/cache
を管理することによって管理することができる.キャッシュ値の取得
リクエストアドレス:/cache/:cache_key要求方法:GET
キャッシュ値のクリーンアップ
リクエストアドレス:/cache/:cache_key要求方法:DELETE
ノードのキャッシュのクリーンアップ
リクエストアドレス:/cacheリクエストメソッド:DELETE
お知らせ
キャッシュAPIは、上記の3つの操作のみをサポートし、上記のバンド
cache_key
の操作を使用する場合は、まずcache_key
の値を知る必要があります.通常、デバッグ環境では、クリーンアップを直接使用してキャッシュしないでください.生産環境は、もちろん使用禁止で、kongのタイミングタスクに任せます.シャトル:オープンソースAPIゲートウェイシステム(Kongチュートリアル)に精通