2 回答

TA貢獻1830條經驗 獲得超9個贊
“等待可用主機時超時” - 這肯定是您的客戶端和數據庫之間的連接問題。關于調試與 Neptune 的連接有很多答案,請嘗試一下。首先,您可以在客戶端計算機上嘗試以下操作嗎?
telnet <db-endpoint> <db-port>
您很可能會看到它正在等待建立連接,這證實了這一假設。
通常,建立與服務器的連接相當快。您需要擔心的唯一超時是查詢超時,而 Neptune 有一個參數組條目。
https://docs.aws.amazon.com/neptune/latest/userguide/parameters.html

TA貢獻1824條經驗 獲得超5個贊
我遇到了同樣的錯誤。Neptunes 不會將錯誤堆棧跟蹤記錄到日志中。當 cpu > 60% 用例時,我的 TimeoutException 即將到來。由于與 db 建立了許多連接,cpu 會變得如此之高。
Gremlin 基于 websockets,多個請求可以通過同一個通道復用和使用。添加maxInProcessPerConnection
并maxSimultaneosUsagePerConnection
確實幫助我將錯誤率降低到 0%。這些參數設置將在一個連接中多路復用的進程數。在我的例子中,大約有 50 名工作人員同時讀/寫。我觀察到,對于我的用例,將值設置為 32 會導致 CPU 使用率最低。下面是我現在要解決的集群屬性。
默認情況下,如果未提及,Cluster 會保留一個最多 8 個 websocket 連接的池。TimeoutException
當maxPoolSize
設置為100時,我得到了。
.addContactPoint(uri) .port(port) .serializer(Serializers.GRAPHBINARY_V1D0) .maxInProcessPerConnection(32) .maxSimultaneousUsagePerConnection(32) .maxContentLength(10000000) .maxWaitForConnection(10) .create()
添加回答
舉報