Twirp:一個很酷的基於Go的新RPC框架

zhongzhong05發表於2018-01-19

今天,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

相關文章