簡體   English   中英

如何在 Cosmos 的 Java SDK v4 或 Cosmos v3 的 Spring 數據中增加請求超時?

[英]How can I increase the request timeout in Java SDK v4 for Cosmos or Spring data for Cosmos v3?

我需要運行一個聚合查詢來計算記錄數,例如SELECT r.product_id, r.rating, COUNT(1) FROM product_ratings r GROUP BY r.product_id, r.rating 該查詢在 Azure 數據資源管理器上運行良好,雖然有點慢。 在數據資源管理器上執行時,查詢的優化版本大約需要 30 秒。 但是,當我在 Java 應用程序中運行相同的查詢時,它似乎在 5 秒內超時,但有以下異常:

com.azure.cosmos.implementation.GoneException: {"innerErrorMessage":"The requested resource is no longer available at the server."}

我相信這是由於 ConnectionPolicy 中定義的默認請求超時為 5 秒(直接和網關模式)。 我找不到覆蓋此默認值的方法。 有沒有辦法增加請求超時? 這個錯誤還有其他可能的原因嗎?

在 Java SDK v4 和 Spring Data Connector v3 上都嘗試過,最終結果相同,即GoneException

您可以考慮以下建議,

以下應該有助於解決這個問題:

  • 嘗試增加http connection pool size (默認1000,可以增加到2000)

  • 如果您使用的是 GateWay 模式,請嘗試使用 DirectMode,更多的流量將通過 tcp,而更少的流量通過 http

您可以參考Github代碼設置超時。

暫無
暫無

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

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