gRPC HTTP/1.1 桥接

gRPC HTTP/1.1 桥接

这是一个简单的过滤器,可以将不支持gRPC响应的HTTP/1.1客户端桥接到兼容的gRPC服务器。它的工作原理如下:

  • 发送请求时,过滤器会查看连接是否为HTTP/1.1,请求内容类型为application/grpc

  • 如果是这样,当收到响应时,过滤器会缓存并等待预告片,然后检查grpc-status代码。如果不为零,则过滤器将HTTP响应代码切换为503。它还将grpc-statusgrpc-message复制到响应头部中,以便客户端可以根据需要查看它们。

  • 客户端应该发送翻译成以下伪首标的HTTP/1.1请求:

    • :method: POST

    • :path: <gRPC-METHOD-NAME>

    • content-type: application/grpc

  • Body应该是序列化的grpc body:

    • 1个字节的零(未压缩)。

    • 网络顺序4个字节的原始消息长度。

    • 序列化的原始消息。

  • 因为这个方案必须缓冲响应,以查找grpc-status,所以它只能用于一元gRPC API。

更多信息:http://www.grpc.io/docs/guides/wire.html

此过滤器还收集所有gRPC传输请求的统计信息,即使这些请求是通过HTTP/2传输的正常gRPC请求。

统计

过滤器收集的统计信息命名空间为cluster.<route target cluster>.grpc.

名称

类型

描述

<grpc service>.<grpc method>.success

Counter

Total successful service/method calls

<grpc service>.<grpc method>.failure

Counter

Total failed service/method calls

<grpc service>.<grpc method>.total

Counter

Total service/method calls

返回

Last updated