Stories

Detail Return Return

Python之RPC開發講解第13篇:gRPC接口類型 - Stories Detail


🚀🚀🚀本篇主要內容

服務器推送

HTTP/2 新增的另一個強大的新功能是,服務器可以對一個客户端請求發送多個響應。 換句話説,除了對最初請求的響應外,服務器還可以向客户端推送額外資源,而無需客户端明確地請求。

!

數據流優先級

因為一條連接允許多個 streams 在上面發送 frame,那麼在一些場景下面, 還是希望 stream 有優先級,方便對端為不同的請求分配不同的資源。譬如對於一個 Web 站點來説,優先加載重要的資源,而對於一些不那麼重要的圖片啥的,則使用低的優先級。

還可以設置 Stream Dependencies,形成一棵 streams priority tree。假設 Stream A 是 parent,Stream B 和 C 都是它的孩子,B 的 weight 是 4,C 的 weight 是 12,假設現在 A 能分配到所有的資源,那麼後面 B 能分配到的資源只有 C 的 1/3。

流控制

HTTP/2 也支持流控,如果 sender 端發送數據太快,receiver 端可能因為太忙,或者壓力太大,或者只想給特定的 stream 分配資源,receiver 端就可能不想處理這些數據。譬如,如果 client 給 server 請求了一個視屏,但這時候用户暫停觀看了,client 就可能告訴 server 別在發送數據了。

aiohttp 文檔

雖然 TCP 也有 flow control,但它僅僅只對一個連接有效果。HTTP/2 在一條連接上面會有多個 streams,有時候, 僅僅只想對一些 stream 進行控制,所以 HTTP/2 單獨提供了流控機制。

re 正則表達式

gRPC接口類型

gRPC有4種接口類型:

  • Unary RPC (一元RPC)
  • Server Streaming RPC ( 服務器流式RPC)
  • Client Streaming RPC ( 客户端流式RPC)
  • Bidirectional Streaming RPC (雙向流式RPC)

對於底層的HTTP/2而言,這些都是數據流Steam, 所説的接口類型是指進行一次gRPC調用的數據通訊流程(或數據流Stream的生命週期)。

1 Unary RPC

最簡單的RPC類型,客户端發送單個請求並返回單個響應。

!

2 Server Streaming RPC

服務器流式RPC類似於

user avatar zhidechaomian_detxs7 Avatar zaotalk Avatar kobe_fans_zxc Avatar k21vin Avatar u_16827017 Avatar munergs Avatar weidewei Avatar lfree Avatar baidujiagoushi Avatar fannaodeliushu Avatar digitalocean Avatar huaiyue_63f0b9e085bf0 Avatar
Favorites 25 users favorite the story!
Favorites

Add a new Comments

Some HTML is okay.