grpc-gateway的替代品--Turbo

zzxx513發表於2017-09-15

轉載自:https://zhuanlan.zhihu.com/p/29350695

grpc-gateway是一個使用起來很便捷的工具,可以很方便的把grpc介面用HTTP的方式暴露出去。

但在實際使用過程中,也在grpc-gateway裡發現了一些問題,比如:

1,靈活性不夠,如果有一些比較特殊的需求,在grpc-gateway中能擴充套件的餘地不大;

2,嚴重依賴protocol buffer,而且必須是protobuf 3;

3,即使grpc服務的介面不變,只是修改HTTP介面定義,也必須重新生成程式碼,也就必須重新部署,重啟服務;

4,只支援JSON格式的輸入,不支援傳統的kv格式的引數;

5,只支援grpc,嗯。。好吧,這不算問題,但thrift也很普及,是不是?

6,grpc-gateway在錯誤處理等方面都不夠成熟,而且開發者似乎也不是很活躍。。。

Turbo努力解決了上面提到的問題,這是專案的地址:

vaporz/turbo

這是文件地址,很貼心很詳細,中英雙語哦~

Turbo Documentation

除了提供基本的與grpc-gateway類似的HTTP代理功能,Turbo還可以做到:

1,高度靈活,提供各種基於切面(不是吃的那個“切面”)思想的元件,可以在各個環節進行定製;

2,只依賴grpc,對protocol buffer沒有要求,因此,你既可以使用protobuf2,也可以使用protobuf3;

3,HTTP介面的定義,以及與後端介面之間的對映,可以在執行時直接修改,並且立即生效!

4,不僅支援JSON格式的輸入,也支援傳統的kv格式的輸入!

5,不僅支援grpc,還支援thrift!

6,自帶命令列工具,一鍵建立可執行的專案,一鍵重新生成程式碼!

Turbo目前仍處於誕生初期,但現在的程式碼已經經過了認真的測試,認真細緻的測試用例讓測試覆蓋率達到了98%。

當然,測試覆蓋率說明不了多少問題,只有經過實戰考驗的程式碼才是可靠的!

因此,歡迎大家多多試用,多多吐槽,有任何建議或想法,請在GitHub上開Issue,坐等。

遇到任何問題,我願意盡力幫助,盡力解決!

謝謝!

相關文章