Citrix ADC

gRPC桥接

クライアントがリクエストを送信するときHTTP / 1.1プロトコルでは,Citrix ADCアプライアンスはgRPCリクエストのブリッジングをサポートしますHTTP / 1.1 gRPCサーバーに準拠しているプロトコルHTTP / 2プロトコル。同様に,リバースブリッジングでは,アプライアンスはクライアントのgRPC要求をHTTP / 2プロトコルを実行し,のgRPCサーバーに準拠してgRPCリクエストのリバースブリッジを実行します。Http /1.1。

gRPC桥接是如何工作的

このシナリオでは,Citrix ADCアプライアンスは,受信したgRPCコンテンツをシームレスにブリッジします。HTTP/1.1,。

gRPC

  1. gRPCリクエストが送信されると,Citrix ADCアプライアンスは接続がHTTP / 1.1コンテンツタイプは应用程序/ gRPC。。
  2. HTTP/1.1。内容类型ヘッダーで示される接続では,ADCアプライアンスはリクエストをgRPCに変換します。Http /2:
:method: HTTP/1.1中的method -name request:path:路径为HTTP/1.1请求内容类型:application/grpc 
  1. ポリシー評価に基づいて,負荷分散仮想サーバー(gRPCサービスがバインドされている)は要求を終了するか,転送しますHTTP / 2バックエンドgRPCサーバーへのフレーム。
  2. で応答を受信するとHTTP / 2 gRPCサーバーからの接続,アプライアンスは受信するまでバッファリングしますHTTP / 2トレーラーを開き,gRPCステータスコードを確認します。ゼロ以外のgRPCエラーステータスの場合,アプライアンスはマッピングHTTPステータスコードを探し,適切なものを送信しますHTTP / 1.1エラー応答。

CLIを使用してgRPCブリッジを構成する

配置gRPC反向桥接,需要完成以下步骤:

  1. HTTP / 2およびHTTP / 2ダイレクトを有効にしたHTTPプロファイルを追加
  2. グローバルバックエンドを有効にするHTTP / 2 HTTPパラメータでのサポート
  3. Ssl / http
  4. gRPC
  5. gRPC
  6. gRPC
  7. # # # # # # # # # # # # # #

HTTP / 2およびHTTP / 2ダイレクトを有効にしたHTTPプロファイルを追加

。クライアントがHTTP1.1リクエストを送信すると,アプライアンスはリクエストをブリッジしてバックエンドサーバーに転送します。

add ns httpProfile -http2 (ENABLED | DISABLED) [- http2direct (ENABLED | DISABLED)]

例:

添加ns httpProfile http2gRPC -http2Direct ENABLED -http2 ENABLED

グローバルバックエンドを有効にするHTTP / 2 HTTPパラメータでのサポート

通过使用Citrix ADC命令行在服务器端全局启用HTTP/2支持。

set ns httpParam -http2ServerSide(ON / OFF)

例:

设置nshttpparam -http2ServerSide ON

Ssl / http

Citrix ADCコマンドインターフェイスを使用して負荷分散仮想サーバーを追加するには

add lb vserver [(@ )] [-httpProfileName ]

例:

添加lb vserver lb-grpc HTTP 10.10.10.10 80 -httpProfileName http2gRPC

注:

タイプSSLの負荷分散仮想サーバーを使用している場合は,サーバー証明書をバインドする必要があります。“,”サーバー証明書のバインド“。

gRPC

Citrix ADC

添加服务 ( | ) [-httpProfileName ]

例:

add service svc-grpc 10.10.10.10 HTTP 80 -httpProfileName http2gRPC . add service svc-grpc 10.10.10.10

gRPC

绑定lb vserver

例:

绑定lb vserver lb-grpc svc-grpc

gRPC

gRPCブリッジングシナリオでは,gRPCサービスはgRPCステータスコードでリクエストに応答します。アプライアンスは,gRPCステータスコードを対応するHTTP応答コードと理由フレーズにマップします。。送信時のCitrix ADCアプライアンス HTTP/1.1 クライアントへの応答は、HTTPステータスコードと理由フレーズを送信します。

gRPC状态代码 HTTP响应状态码 HTTP响应原因-短语
Ok = 0 200 好吧
取消= 1 499
未知= 2 500 内部サーバーエラー
Invalid_argument = 3 400 ★★★★
Deadline_exceeded = 4 504 网关超时
Not_found = 5 404
Already_exists = 6 409 競合
Permission_denied = 7 403 禁止
未验证= 16 401 未承認
Resource_exhausted = 8 429
Failed_precondition = 9 400 ★★★★
流产= 10 409 競合
Out_of_range = 11 400 ★★★★
未实现= 12 501 没有实现
内部= 13 500 内部サーバーエラー
不可用= 14 503 服务不可用
Data_loss = 15 500 内部サーバーエラー

# # # # # # # # # # # # # #

Citrix ADCアプライアンスは,応答トレーラーが受信されるまで,バックエンドサーバーからのgRPC応答をバッファリングします。中文翻译:中文翻译:中文翻译:中文翻译:中文翻译:中文翻译:【中文翻译】:。この問題を解決するために,gRPCブリッジ構成が拡張され,時間によるバッファリングが制限されます。和/或“超级”。バッファサイズまたは時間制限がしきい値を超えると,制限のいずれかがトリガーされた場合でも(設定されたバッファサイズ内でトレーラーが受信されない場合,または設定されたタイムアウトが発生した場合),アプライアンスはバッファリングを停止し,応答をクライアントに転送します。その結果,構成されたポリシーとその式(grpc-statusコードに基づく)が期待どおりに機能しません。

時間によってgRPCバッファリングを制限するには和/或CLIによるサイズで,新しいHTTPプロファイルを追加するときに構成したり,既存のプロファイルを変更するときに構成したりできます。

add ns httpProfile http2gRPC [-grpcHoldLimit ] [-grpcHoldTimeout ]

? ?

set ns httpProfile http2gRPC [-grpcHoldLimit ] [-grpcHoldTimeout ]

【中文】:http://www.tingclass.com/。

grpcholdlimit。。。

:131072:0:33554432

grpcholdtimeout。。100。:1000:0: 180,000

例:

添加httpprofile http2gRPC -grpcholdlimit 1048576 -grpcholdtimeout 5000设置httpprofile http2gRPC -grpcholdlimit 1048576 -grpcholdtimeout 5000

GUIを使用してgRPCブリッジを構成する

Citrix ADC GUIを使用してgRPCブリッジングを構成するには,次の手順を実行します。

HTTP / 2およびHTTP / 2ダイレクトを有効にしたHTTPプロファイルを追加

  1. “系统>配置文件”に移動してHTTP配置文件
  2. httpHTTP / 2? ? ? ?

gRPC

グローバルバックエンドを有効にするHTTP / 2 HTTPパラメータでのサポート

  1. “系统>设置> HTTP参数”? ? ?
  2. http[footnoteref: 1] [footnoteref: 2サーバー側
  3. (好的)

gRPC HTTP/2

Ssl / http

  1. “流量管理>负载均衡>虚拟服务器”? ? ?
  2. 添加
  3. 负载均衡虚拟服务器ページで配置文件
  4. ]
  5. 好吧)、[[au:

gRPC

gRPC

  1. “流量管理>负载均衡>业务”? ? ?
  2. 添加
  3. [中文], []哇,哇,哇!
  4. [au:, gRPChttp://? ? ?
  5. 好吧)、[[au:

grpc

gRPC

  1. “流量管理>负载均衡>虚拟服务器”? ? ?
  2. 添加
  3. 負荷分散仮想サーバー] [qh]サービスとサービスグループ[au:][中文]
  4. []
  5. [中文][完了]

gRPC

GUIを使用して,時間とサイズでgRPCバッファリングを構成します

  1. “系统>配置文件”に移動してHTTP配置文件
  2. httpHTTP / 2? ? ? ?
  3. http://

    1. grpcHoldTimeout。。
    2. grpcHoldLimit。トレーラーが受信されるまでgRPCパケットをバッファリングするための最大サイズをバイト単位で入力します。
  4. 好吧]を[。

時間とサイズによるgRPCブリッジバッファリング

サービスと負荷分散仮想サーバーをバインドするためのGUI手順の詳細については,”負荷分散“。