2 回答

TA貢獻(xiàn)2041條經(jīng)驗(yàn) 獲得超4個贊
云 bigtable 客戶端使用 gRPC 連接池連接到 bigtable。Java 客戶端為每個 HBase 連接使用一個通道池,每個通道池有多個 gRPC 連接。gRPC 連接每小時關(guān)閉一次(或在 15 分鐘不活動后),底層 gRPC 基礎(chǔ)設(shè)施執(zhí)行重新連接。每個新連接上的第一個請求執(zhí)行許多設(shè)置任務(wù),例如 TLS 握手和預(yù)熱服務(wù)器端緩存。這些操作相當(dāng)昂貴,可能會導(dǎo)致延遲峰值。
Bigtable 被設(shè)計(jì)成一個高吞吐量系統(tǒng),這些重新連接和持續(xù)查詢量的攤銷成本應(yīng)該可以忽略不計(jì)。但是,如果客戶端應(yīng)用程序的 QPS 非常低或查詢之間的空閑時間很長并且不能容忍這些延遲峰值,它可以每 30-40 分鐘創(chuàng)建一個新的 Hbase 連接(java)或一個新的 CBT 客戶端(golang)并且在新連接/客戶端上不運(yùn)行 op 調(diào)用(存在于 hbase 客戶端或讀取一小行)以啟動底層 gRPC 連接(每個連接調(diào)用一次,對于 hbase 默認(rèn)是 CPU 數(shù)量的兩倍,默認(rèn)情況下有 4 個連接) .?準(zhǔn)備就緒后,您可以為客戶端應(yīng)用程序中的主要操作換出新的連接/客戶端。

TA貢獻(xiàn)1835條經(jīng)驗(yàn) 獲得超7個贊
我懷疑這可能是由于最近的 grpc-go 版本中引入了一個錯誤,并且剛剛得到修復(fù)?;旧希覀儧]有在連接斷開時立即重新連接,而是錯誤地等待 1 秒再重新連接。請用grpc-go master head再試一次。謝謝!
- 2 回答
- 0 關(guān)注
- 153 瀏覽
添加回答
舉報(bào)