簡體   English   中英

grpc server 並行處理多個請求

[英]grpc server handles multiple requests in parallel

我有一個關於 grpc 服務器並行處理多個請求的問題,我有一個 grpc 服務器,服務器提供了一個端點來處理客戶端請求,並且有多個客戶端向同一個端點發送請求。

當不同的客戶端同時向服務器發送多個請求時,服務器如何處理同時收到的這些請求? 每個請求將由一個線程同時處理嗎? 還是請求會被一個個排隊處理?

謝謝!

HTTP/2 連接對一次連接上的最大並發流數有限制。 默認情況下,大多數服務器將此限制設置為 100 個並發流。

gRPC 通道使用單個 HTTP/2 連接,並發調用在該連接上進行多路復用。 當活動呼叫數達到連接 stream 限制時,額外的呼叫將在客戶端排隊 排隊的呼叫在發送前等待活動呼叫完成。 由於此限制,具有高負載或長時間運行的流式 gRPC 調用的應用程序可能會看到由調用排隊引起的性能問題。

但是這個問題有它自己的解決方案,例如在.Net中,我們可以在定義GrpcChannel時進行如下設置:

SocketsHttpHandler.EnableMultipleHttp2Connections = true

這意味着,當達到並發 stream 限制時,通過通道創建額外的 HTTP/2 連接。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM