ADC
感谢您提供反馈

这篇文章已经过机器翻译.放弃

具有响应者策略的 grPC

带响应程序策略配置的 GrPC 解释了 NetScaler 设备如何通过 HTTP/2 协议对 grPC 请求提供不同的响应。当用户请求网站主页时,您可能希望提供不同的主页,具体取决于每个用户所在的位置或用户使用的浏览器。

下图显示了交互的组件。

具有响应者策略的 grPC

  1. 在设备上启用响应程序功能。
  2. 配置响应程序操作以生成自定义响应、将请求重定向到其他网页或重置连接。
  3. 配置响应程序策略以确定必须对哪些 gRPC 请求(流量)采取操作。
  4. 将响应程序策略绑定到负载平衡虚拟服务器,以检查流量是否与策略表达式匹配。
  5. 通过使用响应者策略,您可以根据 grPC 状态代码执行以下操作。

使用 CLI 使用响应程序策略配置 grPC 呼叫终止

要使用响应程序策略配置 grPC 呼叫终止,您必须完成以下步骤:

  1. 启用响应者功能
  2. 添加响应者操作
  3. 添加响应者策略并关联响应者操作
  4. 将响应程序策略绑定到负载平衡虚拟服务器

启用响应者功能

要使用响应程序功能,必须首先启用它。

在命令提示符下,键入:

enable ns responder

添加响应者操作

启用该功能后,您必须根据后端服务器返回的状态码配置响应程序操作以处理 gRPC 响应。

在命令提示符下,键入:

add responder action <name> <type>

示例:

add responder action grpc-act respondwith "HTTP/1.1 200 OK\r\nServer: NS-Responder\r\nContent-Type:application/grpc\r\ngrpc-status: 12\r\ngrpc-message: Not Implemented\r\n\r\n" + "Method: " + HTTP.REQ.URL+ "is not implemented."

添加响应程序策略

配置响应程序操作后,接下来必须配置响应程序策略以选择 NetScaler 设备必须响应的 gRPC 请求。

在命令提示符下,键入:

add responder policy <name> <expression> <action> [<undefaction>]-appFlowaction <actionName> 示例:

add responder policy grpc-resp-pol1 HTTP.REQ.URL.NE(“/helloworld.Greeter/SayHello”) grpc-act

将响应程序策略绑定到负载平衡虚拟服务器

要使策略生效,必须使用 gRPC 服务将其绑定到负载平衡虚拟服务器。

在命令提示符下,键入:

bind responder global <policyName> <priority> [<gotoPriorityExpression> [-type <type>] [-invoke (<labelType> <labelName>)]

示例:

bind lb vserver lb-grpc svc-grpc -policyName grpc-resp-pol1 –priority 100

有关响应者策略的更多信息,请参阅 响应程序策略 主题。

匹配 grPC 协议缓冲区字段的策略表达式

NetScaler 设备在 grPC 配置中支持以下策略表达式:

  • grPC 协议缓冲区字段访问。任意 grPC API 调用将消息字段编号与新的策略表达式匹配。在 PI 配置中,匹配只使用“字段编号”和“API 路径”完成。

  • grPC 标头过滤。grPC 的“HttpProfile”参数用于调整 grPC 解析的默认行为(包括 grPC 策略表达式)。以下参数适用于 grPC 策略表达式:

    • grpClength划界。默认情况下,它处于启用状态,并希望协议缓冲区显示长度分隔的消息。

    • grpCholdLimit。默认值为 131072。它是以字节为单位的最大协议缓冲区消息大小。它也是最大字符串长度和最大“字节”字段长度。

使用 CLI 配置 grPC 高级策略表达式

在命令提示符下,键入:

set ns httpProfile <name> -http2 \( ENABLED | DISABLED ) -gRPCLengthDelimitation \( ENABLED | DISABLED ) -gRPCHoldLimit <int>

示例:

set ns httpProfile http2gRPC -http2 ENABLED -gRPCLengthDelimitation ENABLED -gRPCHoldLimit 131072

使用 GUI 配置 grPC 标头过滤参数

  1. 导航到系统 > 配置文件,然后单击 HTTP 配置文件

  2. 创建 HTTP 配置文件 页面上,向下滚动到 HTTP/3 部分,选择 grPC 长度分界

    grPC 长度划界

以下策略表达式示例显示了消息 5、子消息 4 和字段 3 中的值。它是一个 32 位 int 等于 2。

http.req.body(1000).grpc.message(5).message(4).int32(3).eq(2)

添加了以下策略表达式,用于按数字匹配 grPC 协议缓冲区消息字段:

  • 消息
  • 双重的
  • 浮动
  • int32
  • int64
  • uint32
  • uint64
  • sint64
  • sint32
  • fixed32
  • fixed64
  • sfixed32
  • sfixed64
  • bool
  • string
  • 枚举
  • bytes

API 路径匹配

当使用多个 API 时,API 路径匹配用于匹配正确的 grPC API 调用。匹配 API 路径,可以在 HTTP 请求的 ‘: path’ 伪标头中找到。

示例:

http.req.header(":path").eq("acme.inventory.v1/ListBooks")
本内容的正式版本为英文版。部分 Cloud Software Group 文档内容采用了机器翻译,仅供您参考。Cloud Software Group 无法控制机器翻译的内容,这些内容可能包含错误、不准确或不合适的语言。对于从英文原文翻译成任何其他语言的内容的准确性、可靠性、适用性或正确性,或者您的 Cloud Software Group 产品或服务沿用了任何机器翻译的内容,我们均不作任何明示或暗示的保证,并且适用的最终用户许可协议或服务条款或者与 Cloud Software Group 签订的任何其他协议(产品或服务与已进行机器翻译的任何文档保持一致)下的任何保证均不适用。对于因使用机器翻译的内容而引起的任何损害或问题,Cloud Software Group 不承担任何责任。
具有响应者策略的 grPC