内容简介:在构建新的API(如HTTP/2,流,跨语言支持,服务器推送等)时使用gRPC而不是HTTP/JSON有很多优点。最难的部分往往是如何处理HTTP/ JSON的遗留服务。这就是为什么gRPC-JSON转码非常有吸引力的原因:我们可以实现基于gRPC的服务器,但是使用HTTP/JSON接口暴露给其他传统服务。因此通常,我们会使用gRPC网关或Google Cloud Endpoints等产品 来为我们处理gRPC-JSON转码,但Envoy也实现了转码!Envoy将gRPC转码作为过滤器实现。在Tetrat
在构建新的API(如HTTP/2,流,跨语言支持,服务器推送等)时使用gRPC而不是HTTP/JSON有很多优点。最难的部分往往是如何处理HTTP/ JSON的遗留服务。这就是为什么gRPC-JSON转码非常有吸引力的原因:我们可以实现基于gRPC的服务器,但是使用HTTP/JSON接口暴露给其他传统服务。因此通常,我们会使用gRPC网关或Google Cloud Endpoints等产品 来为我们处理gRPC-JSON转码,但Envoy也实现了转码!
Envoy将gRPC转码作为过滤器实现。在Tetrate,我们使用Istio作为我们的Envoy边车的控制平面,Istio允许通过其EnvoyFilterCRD 进行自定义Envoy配置。为了利用这一点,我们创建了一个小工具gen-transcoder,它扫描gRPC原型描述符以自动生成准确的Envoy过滤器配置。它还支持过滤Envoy公开为HTTP/JSON的描述符中的服务或包等功能。 gen-transcoder是为了与CI / CD工作流程保持友好。在Tetrate,我们使用它来自动交付gRPC-JSON转码器配置,作为我们正常服务部署的一部分。
使用gen-transcoder是一个简单的两步过程:
第1步:在原型编译期间生成原型描述符:
$ protoc \
-I path/to/google/protobufs \
-I path/to/your/protos \
--descriptor_set_out=path/to/output/dir/YOUR_SERVICE_NAME.proto-descriptor \
--include_imports \
--go_out=plugins=grpc:. \
path/to/your/protos/service.proto
第2步:gen-transcoder用于生成Istio Envoy代理配置
$ gen-transcoder \
--port 9080 \
--service foo \
--<b>package</b>s proto.<b>package</b>.name \
--services='Service.*' \
--descriptor=path/to/output/dir/YOUR_SERVICE_NAME.proto-descriptor
作为其中的一部分,我们已经包含了一些示例proto服务,这些服务被编译为单个proto描述符,您可以通过以下方式使用它。
$ gen-transcoder \
--port 9080 \
--service echo \
--packages proto \
--services 'Echo.*' \
--descriptor \
proto/onebig.proto-descriptor
这将EnvoyFilter专门针对服务proto.EchoService打包proto。
我们很乐意亲自尝试这个工具。您可以在 此处 下载 源代码 。有关详细信息,请参阅 README.md 。
作为警告,EnvoyFilter必须谨慎使用Istio !如果推送了错误的过滤器配置,Envoy将拒绝配置更新并停止服务 - 在编写此 工具 之前,我们在Tetrate遇到了停机。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 流程篇 | 避免 evalString 进行回调,使用 JSB 进行手动绑定
- 使用python进行短信轰炸
- 使用 Docker 进行交叉编译
- 使用 Gomock 进行单元测试
- 使用容器Docker进行开发
- 使用DeepLab进行语义分割
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Hit Refresh
Satya Nadella、Greg Shaw / HarperBusiness / 2017-9-26 / USD 20.37
Hit Refresh is about individual change, about the transformation happening inside of Microsoft and the technology that will soon impact all of our lives—the arrival of the most exciting and disruptive......一起来看看 《Hit Refresh》 这本书的介绍吧!