twirp: 支援protobuf服務定義的簡單RPC框架
結構化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 '{"user": "spencer", "email": "spencer@twitch.tv"}' \ http://localhost:9090/twirp/twitch.example.EmailBoss/UpdateEmail <p class="indent"> |
如果您在面向服務的體系結構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客戶端,能為所有語言的伺服器服務!
相關文章
- 基於 Twirp RPC 的簡易 JSON Api Gateway 實現RPCJSONAPIGateway
- pbgo: 基於Protobuf的rpc/rest迷你框架GoRPCREST框架
- Golang快速實現一個簡單RPC服務GolangRPC
- 徒手擼一個簡單的RPC框架RPC框架
- .Net 8.0 下的新RPC,IceRPC之介面定義語言 [Slice] VS [Protobuf]RPC
- Hyperf 框架建立 JSON-rpc 服務框架JSONRPC
- [Rust]使用Rocket框架搭建簡單Web服務Rust框架Web
- 從零開始實現簡單 RPC 框架 1:RPC 框架的結構和設計RPC框架
- 簡單說說Java 定時任務框架---QuartzJava框架quartz
- 手寫簡單的RPCRPC
- Java 簡單的rpc 一JavaRPC
- go-zero學習之訂單rpc服務GoRPC
- 專業、簡單、穩定,融雲重新定義網際網路通訊雲服務
- Laravel Hprose RPC 服務LaravelROSRPC
- RPC簡單介紹RPC
- 基於 Hyperf 的 RPC 簡單微服務架構試探RPC微服務架構
- lms微服務的rpc通訊框架微服務RPC框架
- 簡單理解JSONP的定義及其實現JSON
- dolphinscheduler簡單任務定義及複雜的跨節點傳參
- Java RPC 框架 Solon 1.3.9 釋出,更便利的支援JavaRPC框架
- Go 實現簡易 RPC 框架GoRPC框架
- 螞蟻金服RPC框架SOFA-RPC - 初體驗RPC框架
- 螞蟻金服RPC框架SOFA-RPC初體驗RPC框架
- 從零實現一個RPC框架系列文章(二):11個類實現簡單RPCRPC框架
- netty 實現簡單的rpc呼叫NettyRPC
- 寫一個RPC服務RPC
- 動手實現一個簡單的 rpc 框架到入門 grpc (下)RPC框架
- 動手實現一個簡單的 rpc 框架到入門 grpc(上)RPC框架
- 動手實現一個簡單的 rpc 框架到入門 grpc (上)RPC框架
- 從零開始實現簡單 RPC 框架 4:註冊中心RPC框架
- 簡單優化容器服務優化
- 超融合基本架構簡單定義架構
- 簡單-定義一個小程式元件元件
- php+nginx實現最簡單的遠端呼叫rpc(微服務)PHPNginxRPC微服務
- 服務之間的呼叫 HTTP代替RPC?HTTPRPC
- 全圖文分析:如何利用Google的protobuf,來思考、設計、實現自己的RPC框架GoRPC框架
- Go 原生 RPC 與 APRC 的簡單使用GoRPC
- Java使用Netty實現簡單的RPCJavaNettyRPC