twirp: 支持protobuf服务定义的简单RPC框架

栏目: 服务器 · 发布时间: 7年前

内容简介:结构化RPC比面向URL的REST API更容易设计和维护,因为他们让你专注于业务逻辑,而不是路由方案。更改API包括添加新字段或方法更容易,并且可以隐藏序列化的特性(例如,JSON缺少64位数字)。gRPC实现了结构化RPC,但人们发现其复杂性和蔓延带来了无法接受的错误数量 - 而且我们无法证明其严格的http/2要求。Twirp是服务到服务通信的框架,强调简单性和极简主义。由API定义文件能生成路由和序列化,让你专注于应用程序的逻辑,而不是考虑像HTTP方法和路径和JSON。

结构化RPC比面向URL的REST API更容易设计和维护,因为他们让你专注于业务逻辑,而不是路由方案。更改API包括添加新字段或方法更容易,并且可以隐藏序列化的特性(例如,JSON缺少64位数字)。

gRPC实现了结构化RPC,但人们发现其复杂性和蔓延带来了无法接受的错误数量 - 而且我们无法证明其严格的http/2要求。

Twirp是服务到服务通信的框架,强调简单性和极简主义。由API定义文件能生成路由和序列化,让你专注于应用程序的逻辑,而不是考虑像HTTP方法和路径和JSON。

Twirp 非常简单,您可以使用cURL在命令行上生成有效请求,而无需过多考虑。它就像Content-Type标头,适当的有效负荷和正确的URL一样简单 - 所有这些都非常标准化。所以,例如:

# 这是一个有效的Twirp请求:
curl \
 -header 'Content-Type:application/json' \
 -data '{<font>"user"</font><font>: </font><font>"spencer"</font><font>, </font><font>"email"</font><font>: </font><font>"spencer@twitch.tv"</font><font>}' \
 http:</font><font><i>//localhost:9090/twirp/twitch.example.EmailBoss/UpdateEmail</i></font><font>
<p>
</font>

如果您在面向服务的体系结构SOA和普通程序中工作,我们认为您应该使用Twirp。我们还认为,即使您使用多种非 Go 语言,您也可以一次将其放入系统中。Twirp的核心设计与语言无关,我们计划扩展到新的语言,但我们的Go实现已经稳定并且能够为繁重的生产负载提供服务。

在Protobuf文件中定义您的服务, 然后Twirp使用服务器接口和功能齐全的客户端自动生成Go代码。它与gRPC类似,但没有自定义HTTP服务器和传输实现:它运行在标准库的经过良好测试和高性能的net/http服务器上。它可以在HTTP 1.1上运行,而不仅仅是http / 2,并且支持JSON客户端以便跨语言轻松集成

Twirp以经过充分测试,标准化,周到的方式为您处理路由和序列化,因此您不必再自己实现,序列化和反序列化代码容易出错并且很棘手,你不应该浪费时间来决定它是“POST /friends/:id/new" 或 "POST /:id/friend"或者其他什么。

在此过程中,您将获得一个自动生成的客户端和一个简单,智能的框架,用于传递错误消息。

它比 grpc 好得多, 因为它使用的是原生的http客户端,能为所有语言的服务器服务!


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

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

Text Processing in Python

Text Processing in Python

David Mertz / Addison-Wesley Professional / 2003-6-12 / USD 54.99

Text Processing in Python describes techniques for manipulation of text using the Python programming language. At the broadest level, text processing is simply taking textual information and doing som......一起来看看 《Text Processing in Python》 这本书的介绍吧!

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

RGB HEX 互转工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具