ホームページ >バックエンド開発 >Golang >KrakenD のシーケンシャル エンドポイント エラー応答

KrakenD のシーケンシャル エンドポイント エラー応答

PHPz
PHPz転載
2024-02-09 08:50:17621ブラウズ

KrakenD 顺序端点错误响应

php エディタ Apple は、KrakenD のシーケンシャル エンドポイント エラー応答の概要を提供します。 KrakenD は高性能の API ゲートウェイですが、使用中にエラーが発生する場合があります。その中でも、シーケンシャルなエンドポイント エラー応答は一般的な問題です。この記事では、この問題に適切に対処し、API ゲートウェイの安定性とパフォーマンスを向上させるために役立つ、連続したエンドポイント エラー応答の原因と解決策について詳しく説明します。

質問内容

krakendのバージョン: 2.2.1 go バージョン : go1.19.3

krakend のシーケンシャル機能を使用して、2 つの異なるエンドポイントにシーケンシャルなリクエストを送信したいと考えています。

私のケースを簡単に要約します:

  • これら 2 つのサービスは成功 (200) とエラー (4**) を返すことがあります。
  • 最初のサービスがエラーを返した場合、Postman でそのエラーが応答として表示されます。 (これが私が欲しいものです)
  • 最初のサービスが成功 (200) を返した後、2 番目のサービスがエラー (4**) を返した場合、2 番目のサービスから返されるエラーを待つ間に Postman から成功の応答が返されます。

シーケンシャルエンドポイントの例:

リーリー

サイドログ

郵便配達員の返信

ご覧のとおり、最初のサービスは正常に動作し、2 番目のサービスはエラーを返しますが、郵便配達員の応答は成功を返します。

回避策

これは、KrakenD の予期される動作です。

複数の呼び出しを行う場合、少なくとも 1 つのリクエストが成功すると、KrakenD は利用可能なものをすべて 200 ステータス コードとともに返します。ただし、その代わりに、何かが失敗したことを示すヘッダー X-KrakenD-Complete: false が表示されます。 集計の詳細については、こちらをご覧ください p>

順次プロキシを使用しているため、最初のリクエストが失敗すると、次の連続呼び出しが自動的に中止されるため、他に何もする必要はありません。したがって、すべてが失敗し、KrakenD は何も返すことができません。これが、望んでいた失敗が得られる理由です。

もう 1 つのケースでは、最初の呼び出しが機能したため、KrakenD は何かを返す必要があり、部分的なデータを受け取ります。

何をすべきかを決定するには、クライアントの X-KrakenD-Complete ヘッダーの内容を調べる必要があります。

以上がKrakenD のシーケンシャル エンドポイント エラー応答の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。