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リクエストが送信されると,Citrix ADCアプライアンスは接続がHTTP / 1.1コンテンツタイプは应用程序/ gRPC。。
- HTTP/1.1。内容类型ヘッダーで示される接続では,ADCアプライアンスはリクエストをgRPCに変換します。Http /2:
:method: HTTP/1.1中的method -name request:path:路径为HTTP/1.1请求内容类型:application/grpc
- ポリシー評価に基づいて,負荷分散仮想サーバー(gRPCサービスがバインドされている)は要求を終了するか,転送しますHTTP / 2バックエンドgRPCサーバーへのフレーム。
- で応答を受信するとHTTP / 2 gRPCサーバーからの接続,アプライアンスは受信するまでバッファリングしますHTTP / 2トレーラーを開き,gRPCステータスコードを確認します。ゼロ以外のgRPCエラーステータスの場合,アプライアンスはマッピングHTTPステータスコードを探し,適切なものを送信しますHTTP / 1.1エラー応答。
CLIを使用してgRPCブリッジを構成する
配置gRPC反向桥接,需要完成以下步骤:
- HTTP / 2およびHTTP / 2ダイレクトを有効にしたHTTPプロファイルを追加
- グローバルバックエンドを有効にするHTTP / 2 HTTPパラメータでのサポート
- Ssl / http
- gRPC
- gRPC
- gRPC
- # # # # # # # # # # # # # #
HTTP / 2およびHTTP / 2ダイレクトを有効にしたHTTPプロファイルを追加
。クライアントがHTTP1.1リクエストを送信すると,アプライアンスはリクエストをブリッジしてバックエンドサーバーに転送します。
。
add ns httpProfile
例:
添加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
例:
添加lb vserver lb-grpc HTTP 10.10.10.10 80 -httpProfileName http2gRPC
注:
タイプSSLの負荷分散仮想サーバーを使用している場合は,サーバー証明書をバインドする必要があります。“,”サーバー証明書のバインド“。
gRPC
Citrix ADC。
。
添加服务
例:
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
? ?
set ns httpProfile http2gRPC [-grpcHoldLimit
【中文】: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プロファイルを追加
- “系统>配置文件”に移動してHTTP配置文件。
- httpHTTP / 2? ? ? ?
グローバルバックエンドを有効にするHTTP / 2 HTTPパラメータでのサポート
- “系统>设置> HTTP参数”? ? ?
- [http[footnoteref: 1] [footnoteref: 2サーバー側。
- (好的)。
Ssl / http
- “流量管理>负载均衡>虚拟服务器”? ? ?
- 添加。
- 负载均衡虚拟服务器ページで配置文件。
- []。
- [好吧)、[[au:。
gRPC
- “流量管理>负载均衡>业务”? ? ?
- 添加。
- [[中文], []哇,哇,哇!
- [[au:, gRPChttp://? ? ?
- [好吧)、[[au:。
gRPC
- “流量管理>负载均衡>虚拟服务器”? ? ?
- 添加。
- [負荷分散仮想サーバー] [qh]サービスとサービスグループ[au:][中文]
- []。
- [中文]、[完了]。
GUIを使用して,時間とサイズでgRPCバッファリングを構成します
- “系统>配置文件”に移動してHTTP配置文件。
- httpHTTP / 2? ? ? ?
「http://。
- grpcHoldTimeout。。
- grpcHoldLimit。トレーラーが受信されるまでgRPCパケットをバッファリングするための最大サイズをバイト単位で入力します。
- [好吧]を[。
サービスと負荷分散仮想サーバーをバインドするためのGUI手順の詳細については,”負荷分散“。