Tetrate - 使用Istio进行gRPC转码

栏目: 后端 · 发布时间: 7年前

内容简介:在构建新的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遇到了停机。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

互联网思维的企业

互联网思维的企业

[美] Dave Gray Thomas Vander Wal / 张 玳 / 人民邮电出版社 / 2014-4-25 / 59.00元

本书指导企业跳出仅更新自家产品和服务的怪圈,在管理方式、组织结构和公司文化方面进行变革,建立具有互联网思维的企业。书中通过大量图示和示例阐述了互联式公司必需的基础元素(透明的互动和交流平台,推崇自治和应变的组织结构,实验和学习的企业文化),以及一套鼓励员工创新的新式管理和奖励体系。最后,讨论板可方便你在工作时间和同事探讨如何增加公司的互联程度。一起来看看 《互联网思维的企业》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

随机密码生成器
随机密码生成器

多种字符组合密码

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试