gRPC HTTP/1.1 桥接
这是一个简单的过滤器,可以将不支持gRPC响应的HTTP/1.1客户端桥接到兼容的gRPC服务器。它的工作原理如下:
- 发送请求时,过滤器会查看连接是否为HTTP/1.1,请求内容类型为
application/grpc
。 - 如果是这样,当收到响应时,过滤器会缓存并等待预告片,然后检查
grpc-status
代码。如果不为零,则过滤器将HTTP响应代码切换为503。它还将grpc-status
和grpc-message
复制到响应头部中,以便客户端可以根据需要查看它们。 - 客户端应该发送翻译成以下伪首标的HTTP/1.1请求:
POST
<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 |
返回
当前内容版权归 lixiangyun 或其关联方所有,如需对内容或内容相关联开源项目进行关注与资助,请访问 lixiangyun .