Twirp:一个很酷的基于Go的新RPC框架

·  阅读 1052

今天,Twitch发布了一个RPC框架,用于在Go编写的后端服务之间进行通信。框架的名字叫做Twirp,现在在Apache 2开源许可协议下可用。

Twirp在Twitch取得了巨大的成功-它的使用范围在成倍增长,大约是每三个月增加3倍,因为越来越多的内部团队采用它,这是因为它比2个最接近的竞争对手“REST”或gRPC更有优势。

与面向URL的REST API相比,结构化的RPC更容易设计和维护,因为它们让你专注于业务逻辑而不是路由方案。更改API以添加新的字段或方法要容易的多,并且可以隐藏序列化的特性(例如,JSON缺少64位的数字)。gRPC实现了结构化的RPC,但我们发现它的复杂性以及带来了不可接受的bug数量-而且我们无法验证其对http2的强要求。Twirp是一个结构化的RPC框架,但强调简单性。Twirp工作在http1.1之上,在一个扩展的特性集上选择稳定性和模块性,然后避开它。

Twirp非常简单,实际上,你可以使用curl命令进行有效的请求,而不需要考虑太多。它有Content-Type头,请求数据负载,一个正确的URL-所有的这些都非常标准化。例如:

# This is a valid Twirp request:
curl \
 -header 'Content-Type:application/json' \
 -data '{"user": "spencer", "email": "spencer@twitch.tv"}' \
 http://localhost:9090/twirp/twitch.example.EmailBoss/UpdateEmail
复制代码

我们认为,如果你工作在一个面向服务的体系结构和程序中使用Go,你会想要使用Twirp。我们也认为,即使你是用的不是go语言,你也能将其应用到系统的服务中。Twirp的核心设计就是语言无关的,我们计划扩展到其它语言上,但是在go语言上的实现已经非常稳定,并且能够应用于生产环境。

开始学习现在可以访问:github.com/twitchtv/twirp.

但是让我们回过头来。RPC框架是什么意思,你为什么需要使用RPC?请阅读更多的技术细节。这篇文章将涵盖一下内容:

我们将从描述工程师编写后端服务API的典型方式开始:手写,带有一组提供JSON响应的URL。

为什么你需要RPC

未完。。 原文地址:https://blog.twitch.tv/twirp-a-sweet-new-rpc-framework-for-go-5f2febbf35f

分类:
后端
标签:
分类:
后端
标签: