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


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

查看所有标签

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

智能优化方法

智能优化方法

汪定伟 / 2007-4 / 37.10元

《智能优化方法》主要介绍近年来产生发展的多种智能优化算法。包括为人熟知的遗传算法、禁忌搜索算法、模拟退火算法和蚁群优化算法;近年来已成为研究热点的粒子群优化算法;还有尚待普及的捕食搜索算法和动态环境下的进化计算。书中讨论这些算法的产生和发展、算法的基本思想和理论、基本构成、计算步骤和主要的变形以及数值例子和实际应用。为了方便读者学习,各章之后还附有精选的习题、思考题及相关的参考文献。 本教材......一起来看看 《智能优化方法》 这本书的介绍吧!

SHA 加密
SHA 加密

SHA 加密工具

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

正则表达式在线测试

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具