[英]grpc client python: How to create grpc client connection pool for better throughput?
我們的用例是發出大量請求。 每個請求返回 1 MB 的數據。 現在,在客戶端,我們創建一個單獨的 GRPC 通道並在循環中運行以下 function
content_grpc_channel = grpc.insecure_channel(content_netloc)
test_stub = test_pb2_grpc.ContentServiceInternalStub(
content_grpc_channel)
def get_feature_data_future(feature_id, span_context=()):
req_feature = test_pb2.GetFeatureRequest()
req_feature.feature_id = feature_id
resp_feature_future = test_stub.GetFeature.future(
req_feature, metadata=span_context)
return resp_feature_future
我的問題是在 python 如何創建 grpc 客戶端連接池以獲得更好的吞吐量?
在 golang 中,我看到了這個https://godoc.org/google.golang.org/api/option#WithGRPCConnectionPool但我很難在 python 中找到文檔。
python中是否有這樣的實用程序來創建grpc連接池? 或者我應該創建多個 grpc 頻道並自己管理這些頻道? 我假設每個通道都有不同的 tcp 連接,對嗎?
gRPC 使用 HTTP/2 並且可以在一個連接上多路復用多個請求,並且 gRPC 客戶端連接應該在客戶端應用程序的生命周期內重復使用。
您提到的 Golang 鏈接說 WithGRPCConnectionPool 將用於平衡請求。 如果需要,您可能會搜索負載平衡,但請記住,負載平衡僅在您有多個 gRPC 服務器實例時才有意義。
如果您正在尋找一個受數據庫操作啟發的連接池,我想說您不必擔心它,因為使用 gRPC 時不存在打開連接開銷
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.