Segment使用Go、gRPC和Envoy作为后端REST API实现​​​​​​​

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

内容简介:Segment刚刚启动了在Segment,我们 默认在Go中构建新服务,Go语言很简单,因此新的团队成员很快就会加入代码库。工具链很快,因此如果开发人员打破了代码、或在测试或在与其他系统集成时出现问题时都会立即得到反馈,运行时很快,因此它在大规模上表现出色。

Segment刚刚启动了 Segment Config API在这里 自己试试) - 一组公共REST API,可以让您管理Segment配置。在这个Config API的后面是使用Go,GRPC 和Envoy构建的。

在Segment,我们 默认在 Go 中构建新服务,Go语言很简单,因此新的团队成员很快就会加入代码库。工具链很快,因此如果开发人员打破了代码、或在测试或在与其他系统集成时出现问题时都会立即得到反馈,运行时很快,因此它在大规模上表现出色。

对于最新一轮的API,我们采用了GRPC 服务框架

借助于API标准的 Google API设计指南 ,uber/prototool格式化、linting .protos以及lyft/protoc-gen-validate定义字段验证以及grpc-gateway定义REST映射等生态系统工具,Protocol Buffer服务定义语言可以轻松设计类型安全且一致的API 。

通过精心设计的.proto,它可以轻松生成Go 服务器接口和TypeScript 客户端,在语言之间提供类型安全的RPC。

对于API网关和RPC,我们采用了Envoy服务代理

面向互联网的segmentapis.com端点是一个Envoy 前端代理,可对每个请求进行速率限制和验证。然后,它将REST/JSON 请求转码为上游GRPC 请求。上游GRPC 服务器运行着为Datadog微服务统计配置的Envoy边车代理。其结果是API 的安全性、可靠性和一致观察性通过Envoy配置,而不是代码。

我们尝试过Swagger服务定义,但规范非常庞大,生成的客户端和服务器存根有很多不足之处。GRPC和.proto以及Go 实现感觉设计和实现更好,由于GRPC工具和生态系统,您可以从.protos生成Swagger,但实际上不可能采用其他方式。


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

查看所有标签

猜你喜欢:

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

总开关

总开关

[美] 吴修铭 / 顾佳 / 中信出版社 / 2011-8 / 49.00元

当收音机经历从真空管收音机到半导体收音机,再到电晶体收音机的发展升级时,人们觉得自己的资讯来源美满得无可复加了。当约翰.洛吉.贝尔德发明了电视以后,在很长一段时间内,人们都认为电视就是他们所拥有的﹑也是所愿意拥有的最好的资讯媒介。 时至今日,互联网的震撼不亚于以往任何媒介,它给我们带来了最大的信息量,最便捷的自我表达,最迅速的沟通。互联网似乎比以往任何媒介都具有优越性。在互联网成为这个时代主......一起来看看 《总开关》 这本书的介绍吧!

URL 编码/解码
URL 编码/解码

URL 编码/解码

SHA 加密
SHA 加密

SHA 加密工具

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

正则表达式在线测试