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

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

内容简介: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,但实际上不可能采用其他方式。


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

查看所有标签

猜你喜欢:

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

互联网思维的企业

互联网思维的企业

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

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

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

html转js在线工具
html转js在线工具

html转js在线工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具