システムアーキテクチャの基本単位として、クラウドネイティブゲートウェイは従来のトラフィックゲートウェイとマイクロサービスゲートウェイを統合します。この統合により、ネットワークのオーバーヘッドと O&M コストが大幅に削減され、さまざまなトラフィックガバナンス手法と体系的な可観測性機能が提供されます。このトピックでは、クラウドネイティブゲートウェイを Microservices Engine(MSE)Nacos レジストリのサービスソースに関連付けることによって、ルーティングポリシーとアラートを設定する方法について説明します。
前提条件
クラウドネイティブゲートウェイが作成されていること。詳細については、「MSE クラウドネイティブゲートウェイの作成」をご参照ください。
MSE Nacos エンジンが作成されていること。詳細については、「Nacos エンジンの作成」をご参照ください。
サービスが MSE Nacos レジストリに登録されていること。詳細については、「Spring Cloud アプリケーションを MSE Nacos レジストリに登録する」をご参照ください。
クラウドネイティブゲートウェイを、MSE Nacos または ZooKeeper レジストリに登録されているオンプレミスサービスに関連付けることはできません。
ルートの作成
MSE コンソール にログインします。トップナビゲーションバーで、リージョンを選択します。
左側のナビゲーションペインで、Cloud-Native Gateway > ゲートウェイリスト を選択します。[ゲートウェイ] ページで、ゲートウェイの名前をクリックします。
左側のナビゲーションペインで、Routes タブをクリックします。[ルート] タブで、Add Route をクリックします。
Add Route ページで、[ルーティングルール名] フィールドに
springcloud-demoと入力し、[ドメイン名] ドロップダウンリストから * を選択します。[パス] セクションで、ドロップダウンリストから [プレフィックス] を選択し、フィールドに / と入力します。[ルートポイント] パラメータを [単一サービス] に設定し、[サービス名] ドロップダウンリストの [サービスの関連付け] をクリックします。
[サービスの関連付け] パネルで、ビジネス要件に基づいてパラメータを設定し、[OK] をクリックします。

[サービス名] ドロップダウンリストから
nacos-service-consumerを選択し、[保存してアドバタイズ] をクリックします。
ルーティングポリシーの設定
ルーティングポリシーが設定されていない場合
MSE コンソール にログインします。
トップナビゲーションバーで、リージョンを選択します。
左側のナビゲーションペインで、Cloud-Native Gateway > ゲートウェイリスト を選択します。[ゲートウェイ] ページで、ゲートウェイの名前をクリックします。
Overview ページの Gateway Ingress タブで、ゲートウェイの [イングレス IP アドレス] を表示します。
説明クラウドネイティブゲートウェイのイングレス IP アドレスは、ゲートウェイに関連付けられている SLB インスタンスの IP アドレスです。 SLB インスタンスをセルフマネージド SLB インスタンスに置き換えることができます。詳細については、「イングレスとして指定された SLB インスタンスの管理」をご参照ください。
テストリクエストを送信するには、次のコマンドを実行します。
curl -I http://8.136.104.xx/echo-rest/hello説明上記のコマンドには、Nacos サービスソースのデモサービスが含まれています。 URL をバックエンドサービスの URL に置き換えることができます。
次の結果が返されます。
HTTP/1.1 200 OK Content-Type: text/plain;charset=UTF-8 Content-Length: 5 Date: Thu, 29 Aug 2024 08:21:47 GMT req-cost-time: 9 req-arrive-time: 1724919707979 resp-start-time: 1724919707988 x-envoy-upstream-service-time: 8 server: istio-envoy
スロットリングポリシーが設定されている場合
高並列アクセスシナリオでは、アプリケーションに適切なスロットリングポリシーが設定されていない場合、過剰なリクエストによりバックエンドサービスが過負荷になる可能性があります。これは、サービスの応答速度に悪影響を及ぼしたり、サービスのクラッシュを引き起こしたりする可能性があります。スロットリングは、リクエスト数がシステムで処理できる範囲内にあることを保証します。クラウドネイティブゲートウェイのスロットリングポリシーを設定できます。ルーティングポリシーの詳細については、「ルーティングポリシー」をご参照ください。
MSE コンソール にログインします。トップナビゲーションバーで、リージョンを選択します。
左側のナビゲーションペインで、Cloud-Native Gateway > ゲートウェイリスト を選択します。[ゲートウェイ] ページで、ゲートウェイの名前をクリックします。
左側のナビゲーションペインで、Routes をクリックします。
変更するルーティングルールを見つけ、Actions 列の Policies をクリックします。
表示されるページの Policies セクションで、Throttling タブをクリックします。
スロットリングポリシーは、ルートの 1 秒あたりのクエリ数(QPS)を監視するために使用されます。 QPS が指定されたしきい値に達すると、トラフィックはすぐにブロックされます。これにより、トラフィックの急増によるバックエンドサービスの停止を防ぎ、バックエンドサービスの高可用性を確保します。
Throttling タブで、[フロー制御ルール] をクリックします。
Throttling Rules タブで、次のパラメータを設定します。

パラメータ
説明
例
[全体 QPS しきい値]
[全体 QPS しきい値] の値を入力します。
1
[web フォールバック動作]
[web フォールバック動作] に [指定されたコンテンツを返す] または [指定されたページにジャンプする] を選択します。
指定されたコンテンツを返す
[HTTP ステータスコード]
HTTP ステータスコードを入力します。デフォルト値は 429 です。
429
[返される Content-type]
[返される Content-type] に [プレーンテキスト] または [JSON] を選択します。
プレーンテキスト
[HTTP テキスト]
返されるテキストを入力します。
springcloud-demo flow limit
[開くかどうか]
このスイッチをオンにすると、設定されたスロットリングポリシーが有効になります。

New または [保存] をクリックして、ルールを作成または更新します。表示されるメッセージで、[OK] をクリックします。
次のスクリプトを実行して、テストリクエストを送信します。
Windows
@echo off set "localUrl= http://8.136.104.xxx/echo-rest/hello" :loop curl -i -s %localUrl% goto loopLinux
#!/bin/bash URL="http://8.136.104.xxx/echo-rest/hello" while true; do curl -i -s $URL done次の結果が返されます。スロットリングポリシーを有効にすると、HTTP ステータスコード 429 が返されます。
helloHTTP/1.1 429 Too Many Requests content-type: text/plain; charset=UTF-8 content-length: 26 date: Thu, 29 Aug 2024 08:54:46 GMT server: istio-envoy springcloud-demo flow limit HTTP/1.1 200 OK Content-Type: text/plain;charset=UTF-8 Content-Length: 5 Date: Thu, 29 Aug 2024 08:54:46 GMT req-cost-time: 8 req-arrive-time: 1724921686961 resp-start-time: 1724921686970 x-envoy-upstream-service-time: 7 server: istio-envoy
参照資料
クラウドネイティブゲートウェイに関する FAQ を参照するか、クラウドネイティブゲートウェイの AI 診断ツールを使用してトラブルシューティングを行うことができます。 AI 診断ツールの使用方法については、「クラウドネイティブゲートウェイの AI 診断」をご参照ください。