Create Routing Strategy アサーション

Create Routing Strategy アサーションは、動的ルーティングの基礎となるルーティング ストラテジを作成するために使用されます。
gateway10
Create Routing Strategy
アサーションは、動的ルーティングの基礎となるルーティング ストラテジを作成するために使用されます。
このアサーションでは、ルーティング先のリストが含まれるルート リストを設定します。これらの送信先は通常、可能性があるバックエンドのサーバのリストを格納する複数値の変数です。その後、このアサーションは送信先サーバを解析し、Process Routing Strategy Result アサーションで使用される別の変数に格納されるルート リストを作成します。
動的ルーティングの使用」で説明されているように、Execute Routing Strategy アサーションより前に Create Routing Strategy アサーションを配置する必要があります。
このアサーションによって作成されるコンテキスト変数
Create Routing Strategy アサーションは、以下のコンテキスト変数にクエリ結果を設定します。
変数
説明
$<
strategy
>.
routeList
この変数には、Route List テーブル内のルートのリストが複数値コンテキスト変数として返されます。<
strategy
> は[Routing Strategy Prefix]フィールドに入力した値です。この複数値の変数内の項目には、${<
strategy
>.
routeList
.<
index
>} 構文を使用してアクセスできます。この変数は送信メッセージに対してのみ設定されます。
例: サンプル ルート データを使用して、変数 ${jdbcQuery.servers} で指定されているルートが "server1, server2" になると仮定します。
[Routing Strategy Prefix]のデフォルト値である「strategy」が使用され、以下の値を持つ複数値の変数 ${
strategy
.
routeList
} が作成されます。
invalid
server1
server2
${<
strategy
>}
このコンテキスト変数は、[Routing Strategy Prefix]フィールドに入力した値を使用して作成されます。たとえば、デフォルト値である「
strategy
」の場合は、作成されるコンテキスト変数の名前は ${
strategy
} になります。このコンテキスト変数には、選択されたルーティング ストラテジが返され、Execute Routing Strategy および Process Routing Strategy Result アサーションで使用されます。この変数は送信メッセージに対してのみ設定されます。
アサーションの使用
  1. 以下のいずれかを実行します。
    • アサーションをポリシー作成ウィンドウに追加するには、「アサーションの追加」を参照してください。
    • 既存のアサーションの設定を変更するには、下記の手順 2 に進みます。
  2. ポリシー ウィンドウで[
    Create Routing Strategy...
    ]を右クリックして[
    Create Routing Strategy Properties
    ]を選択するか、ポリシー ウィンドウでアサーションをダブルクリックします。このアサーションのプロパティが表示されます。
  3. 実行するタスクを選択します。
    目的
    方法
    新しいルートの追加
    1. Add
      ]をクリックします。[New Route]ダイアログ ボックスが表示されます。
    2. ルート名を入力します。
    3. ルート プロパティを設定します。
    4. OK
      ]をクリックします。
    既存のルートのクローン作成
    1. クローン作成するルートを選択します。
    2. Clone
      ]をクリックします。[Clone Route]ダイアログ ボックスが表示されます。
    3. 必要に応じて、ルート名およびプロパティを変更します。
    4. OK
      ]をクリックします。
    既存のルートの編集
    1. 編集するルートを選択します。
    2. Edit
      ]をクリックします。[Edit Route]ダイアログ ボックスが表示されます。
    3. 必要に応じて、ルート名およびプロパティを変更します。
    4. OK
      ]をクリックします。
    ルートの削除
    1. 削除するルートを選択します。
    2. Remove
      ]をクリックします。確認メッセージが表示されます。
    3. Remove
      ]をクリックして確定します。
    上に移動
    選択しているルートを 1 行上に移動させます。
    下に移動
    選択しているルートを 1 行下に移動させます。
    フェールオーバ
    ドロップダウン リストから、以下のいずれかのフェールオーバ方法を選択します。
    • Ordered Sticky with Failover:
      Layer7 API Gateway
      はリスト内の最初のルートに、そのルートが応答しなくなる(失敗する)までサービス メッセージを送信します。応答しなくなったら、リスト内の次のルートを使用します。
      クラスタ プロパティ
      io.failoverServerRetryDelay
      は、
      Layer7 API Gateway
      が失敗したサーバを再試行するまでの遅延を制御します。「Ordered Sticky with Failover」ストラテジを使用する場合のデフォルトは、15 分間待機することです。
    • Random Sticky with Failover:
      Layer7 API Gateway
      は、各セッションの開始時にルートをランダムに選択し、そのセッションの間はそのルートを使用します。選択したルートが失敗した場合、別のルートをランダムに選択します。
    • Round-Robin
      Layer7 API Gateway
      は、リクエストごとに有効なルートが見つかるまで、ルート リスト全体を順次回転させます(ラウンド ロビン)。有効なルートが見つからずにルート リストの最後に達すると、そのサイクルは終了します。「Execute Routing Strategy アサーション」を参照してください。
      クラスタ プロパティ
      io.failoverServerRetryDelay
      は、
      Layer7 API Gateway
      が失敗したサーバを再試行するまでの遅延を制御します。「Round-Robin」ストラテジを使用する場合のデフォルトは、5 分間待機することです。
    フェールオーバの設定時の注意
    POST のような操作でフェールオーバを使用すると、Gateway からバックエンド システムに重複した POST リクエストが送信される場合があります。たとえば、読み取りタイムアウトが 5 秒であるとします。Backend1 に POST リクエストが送信され、その応答に 10 秒かかるとします。この場合、Gateway は 5 秒後に同じ POST リクエストを Backend2 に送信します。5 つのバックエンドがある場合、これにより 5 つの POST リクエストが送信され、同じバックエンド コンテンツが 5 回修正される可能性があります。
    フェールオーバ ストラテジでは接続タイムアウトは有効に機能しますが、POST のようなべき等ではない操作にはそれらを使用しないでください。
    フェールオーバの設定
    このオプションはカスタム フェールオーバでのみ使用可能です。
    ルーティング ストラテジ プレフィックス
    以下の 2 つの用途で使用されるプレフィックスを入力します。
    • ここで入力した値は、一意である必要があり、このアサーションによって作成される ${<
      strategy
      >.
      routelist
      } (${<
      routingStrategyPrefix
      >.
      routelist
      } の簡略形)変数にプレフィックスとして追加されます。
    • ここで入力した値は、選択されたストラテジを格納する独自のコンテキスト変数を作成するためにも使用されます。
    デフォルトは「
    strategy
    」です。
    これらの 2 つの変数の詳細については、先述の「このアサーションによって作成されるコンテキスト変数」を参照してください。
    表示される検証メッセージの説明については、「コンテキスト変数」の「コンテキスト変数の検証」を参照してください。
    目的
    方法
    ルート プロパティの追加
    1. [Route]フィールドに名前を入力します。
    2. Add
      ]をクリックします。[New Property]ダイアログ ボックスが表示されます。
    3. [New Property]ダイアログ ボックスで以下のように入力します。
    • Property Name:
      プロパティ名を入力します。
    • Value:
      そのプロパティ名に関連付けられている値を入力します。
    ルート プロパティの値の編集
    1. 編集するルートを[Route Property]内で強調表示して、[
      Edit
      ]をクリックします。[Edit Property]ダイアログ ボックスが表示されます。
    2. [Edit Property]ダイアログ ボックスの[Value]フィールドの値を編集します。新しい値が[Route List]の[Properties]列に表示されます。
    ルート プロパティの削除
    1. 削除するルートを[Route Property]内で強調表示して、[
      Delete
      ]をクリックします。そのルートは、[New Route]ダイアログ ボックスの[Route Properties]リストおよび[Route List]内の[Properties]列に表示されなくなります。
  4. 完了したら、[
    OK
    ]をクリックします。