gRPC為什麼要使用http作為傳輸協議?難道要跟xml-http/json-http一決雌雄?

gRPC為什麼要使用http作為傳輸協議?難道要跟xml-http/json-http一決雌雄?

通常來說,使用http作為傳輸協議的服務,應用場景大多是BS架構的web;而ProtoBuf通常用來搞大數據量的傳輸(比如分散式存儲),而gRPC卻使用了http2作為傳輸協議。

所以矛盾來了,gRPC的使用場景是什麼呢?與xml-http、json-http一樣應用在web服務上;還是其他用途?


瀉藥。做 gRPC 時當面問過項目領隊 ctiller (Craig Tiller) 這個問題。他的答案是:許多客戶端要通過 HTTP 代理來訪問網路,gRPC 全部用 HTTP/2 實現,等到代理開始支持 HTTP/2 就能透明轉發 gRPC 的數據。不光如此,負責負載均衡、訪問控制等等的反向代理都能無縫兼容 gRPC,比起自己設計 wire protocol 的 Thrift,這樣做科學不少。


為了強行推廣http2


我(不)會用Google系列。。。

Building on HTTP/2 standards brings many capabilities such as bidirectional streaming, flow control, header compression, multiplexing requests over a single TCP connection and more. These features save battery life and data usage on mobile while speeding up services and web applications running in the cloud.

https://developers.googleblog.com/2015/02/introducing-grpc-new-open-source-http2.html


儘管早就有了RPC,DCE,CORBA, 可後來W3和XML愛好者還不是又重新發明了一遍?


為了兼容其他的微服務組建吧


http2 和http 還是非常不同的


已邀請在谷歌寫過 grpc 的朋友回答 @滕亦飛


1、為了推HTTP/2

2、HTTP的七層負載均衡方案比較豐富一些

(個人理解


為了基礎架構全部雲計算化後應用之間的直接傳輸。現在很多程序除了資料庫以外很多調用都是通過api。如果使用http2一方面安全層面天然得到加強。另一方面針對底層介面的嵌套不需要應用開發人員過於關注。


覺得我用不著http是比較常見的幻覺


這次加密技術主要是因為本計算機加入原AD域,現改名為eMoteDesktop域,並且使用了新密鑰續訂證書,加密有二個方面一個是針對VP連接,另外一個加密技術晶元加密技術。我也是無奈之舉!


推薦閱讀:

jsoncpp和rapidjson哪個好用?

TAG:protobuf | 微信模板消息 | RapidJSON | json-rpc | gRPC |