Kongプラグイン
Kongのプラグインは4つの次元に対応しており、実行順は上から下へです。また、同じプラグインが異なる次元で設定されている場合は、一度だけ実行されることに注意してください。
- APIと消費者のミックスを適用し、
- 消費者に適用されます;
- APIでの適用;
- 世界的に適用;
また、すべてのプラグインがコンシューマーの定義をサポートしているわけではありません
テスト用のAPIを追加 新しいインターフェースの追加:
{ 「created_at」:1515055457572、 「strip_uri」:真実、 「ID」:「A99919D1-0770-40A1-81a9-E3C31FD9D282」 「名前」: 「spring-boot-consul-service2」 「方法」:[ 「行け」 ], 「http_if_terminated」:偽、 「preserve_host」:偽、 「upstream_url」:「http://spring-boot-consul-service2.service.dc1.consul:17004」、 「ユリス」:[ 「/ユーザー」 ], 「upstream_send_timeout」:60000、 「upstream_connect_timeout」:60000、 「upstream_read_timeout」:60000、 「再挑戦」:5、 「https_only」:偽
}
蒸気を追加
{ 「created_at」:1515055993113、 「注文リスト」: [ 41, 28, 44, 14, 79, 38, 30, 69, 15, 88, 72, 53, 89, 47, 81, 43, 60, 91, 92, 100, 98, 55, 12, 40, 9, 31, 84, 24, 36, 39, 96, 74, 6, 8, 93, 99, 78, 34, 49, 37, 61, 76, 33, 35, 32, 77, 70, 26, 52, 87, 73, 23, 57, 25, 17, 90, 62, 82, 19, 75, 50, 4, 51, 42, 65, 66, 63, 3, 1, 68, 94, 67, 20, 80, 54, 7, 5, 16, 85, 13, 46, 10, 97, 22, 48, 11, 27, 86, 18, 59, 83, 21, 56, 95, 2, 64, 58, 71, 45, 29 ], 「id」:「6b8bc38a-d449-47bf-8b8c-19b888e282d4」 "name": "spring-boot-consul-service2.service.dc1.consul", 「スロット」:100
}
ターゲットを追加
タゲッツ情報
{ 「合計」:3、 「データ」:[ { 「created_at」:1515056103599、 「id」:「994E7886-3E48-45CB-80AD-3F7918edE007」 「upstream_id」:「6b8bc38a-d449-47bf-8b8c-19b888e282d4」 「ターゲット」:「192.168.0.186:17004」 「体重」:15 }, { 「created_at」:1515056109570、 「ID」:「03B477ee-A69D-49EE-9892-276F451C373C」 「upstream_id」:「6b8bc38a-d449-47bf-8b8c-19b888e282d4」 「ターゲット」:「192.168.0.185:17004」 「体重」:15 }, { 「created_at」:1515056112730、 「id」:「8ace8d83-4504-4334-ad04-f0b536963df9」 「upstream_id」:「6b8bc38a-d449-47bf-8b8c-19b888e282d4」 「ターゲット」:「192.168.0.184:17004」 「体重」:15 } ]
}
現在のAPIリストは以下の通りです:
{ 「合計」:2、 「データ」:[ { 「created_at」:1515055457572、 「strip_uri」:真実、 「ID」:「A99919D1-0770-40A1-81a9-E3C31FD9D282」 「名前」: 「spring-boot-consul-service2」 「方法」:[ 「行け」 ], 「http_if_terminated」:偽、 「https_only」:偽、 「upstream_url」:「http://spring-boot-consul-service2.service.dc1.consul:17004」、 「ユリス」:[ 「/ユーザー」 ], 「preserve_host」:偽、 「upstream_connect_timeout」:60000、 「upstream_read_timeout」:60000、 「upstream_send_timeout」:60000、 「リトライ」:5回 }, { 「created_at」:1514995615974、 「strip_uri」:真実、 「ID」:「B8431831-6A77-434E-ac4a-7e379550714f」 「名前」:「スプリングブーツコンスルサービス」 「方法」:[ 「行け」 ], 「http_if_terminated」:偽、 「https_only」:偽、 「upstream_url」:「http://spring-boot-consul-service.service.dc1.consul:17003」 「ユリス」:[ 「/サービス」 ], 「preserve_host」:偽、 「upstream_connect_timeout」:60000、 「upstream_read_timeout」:60000、 「upstream_send_timeout」:60000、 「リトライ」:5回 } ]
}
アクセスインターフェースは以下の値を返します:
{ 「msg」: 「OK」 「デート」:{ 「スコア」:42、 「名前」:「木」、 「id」:1、 「年齢」:12歳、 「nowTime」:1515060166929、 "info": "/checkUser, host:192.168.0.186, service_id:application-1700417004" }, 「コード」:200
} { 「msg」: 「OK」 「デート」:{ 「スコア」:505、 「名前」:「木」、 「id」:1、 「年齢」:12歳、 「nowTime」:1515060402392、 "info": "/checkUser, host:192.168.0.184, service_id:application-1700317003" }, 「コード」:200
} Key-Authプラグインを追加してください
キー認証プラグインを開いてください
{ 「created_at」:1515066239000、 「config」: { 「key_in_body」:偽、 「run_on_preflight」:真実、 「匿名」:「」 「hide_credentials」:偽、 「key_names」:[ 「アピキー」 ] }, 「ID」:「78C519D3-11F7-4CDF-B038-9F17F1A83427」 「Enabled」:真、 「api_id」: 「a99919d1-0770-40a1-81a9-e3c31FD9d282」 「名前」:「キー認証」
} 次に、次のようなエラーでインターフェースにアクセスします:
キー認証プラグインを削除してください
APIバインディングプラグインをチェックしてみてください
レート制限プラグインのレートリミッターを追加してください
出力
{ 「created_at」:1515068825000、 「config」: { 「分」:10、 「policy」:「cluster」 「redis_timeout」:2000年、 「hide_client_headers」:偽、 「第二」:2、 「limit_by」:「消費者」、 「redis_port」:6379、 「redis_database」:0、 「fault_tolerant」:真 }, 「ID」:「482C627F-4041-4320-9b2F-0cc7722b92ea」 「名前」:「レート制限」、 「api_id」: 「a99919d1-0770-40a1-81a9-e3c31FD9d282」 「有効」:真
} アクセスインターフェースが制限を超えると、以下の返答結果が受信されます:
帰還
しかし、メッセージ形式が固定されていること、出力形式がバックエンドサービスと一貫していないこと、カスタムメッセージ形式のサポートなど、いくつかの問題が残っています。
Kongは例外の返り値を修正します 例えば、サービス統一メッセージの形式は以下の通りです:
{ 「コード」:200、 「msg」: 「OK」 「データ」:{xxx}
} また、コンの例外返還も上記のフォーマットのままにしたいと考えています。 そして、実際に非常に簡単な方法でKongのソースコードを直接変更できます。
まずはソースコードをダウンロードしてください
#下载kong插件源码
Git クローンgit@github.com:Kong/kong.git
修正する出力コードを見つけてください
出力コードはkong/kong/tools/responses.luaにあります。編集のために開いてください。
保存してからコンパイル
[root@tree81コング]# ルアロックが作る Kongの0.11.2-0は現在、/usr/local(ライセンス:MIT)にインストールされています。 発射、もう一度試してみて
アドレスを何度か連続で素早く更新します:ハイパーリンクのログインが見えます。エラーメッセージが表示されます:
{ 「コード」:429、 「msg」:「APIレート制限が超過」
} 完了、完璧な:) |