![](/img/trans.png)
[英]RedisTimeoutException when trying to connect to AWS ElasticCache Redis from App Runner
[英]Redisson client ; RedisTimeoutException issue
我正在通過redisson(3.12.5)
使用Google cloud managed redis cluster(v5)
)
以下是我在 yaml 文件中的SingleServer
配置
singleServerConfig:
idleConnectionTimeout: 10000
connectTimeout: 10000
timeout: 3000
retryAttempts: 3
retryInterval: 1500
password: null
subscriptionsPerConnection: 5
clientName: null
address: "redis://127.0.0.1:6379"
subscriptionConnectionMinimumIdleSize: 1
subscriptionConnectionPoolSize: 50
connectionMinimumIdleSize: 40
connectionPoolSize: 250
database: 0
dnsMonitoringInterval: 5000
threads: 0
nettyThreads: 0
codec: !<org.redisson.codec.JsonJacksonCodec> {}
當我增加應用程序的負載時出現以下異常
org.redisson.client.RedisTimeoutException: Unable to acquire connection! Increase connection pool size and/or retryInterval settings Node source: NodeSource
org.redisson.client.RedisTimeoutException: Command still hasn't been written into connection! Increase nettyThreads and/or retryInterval settings. Payload size in bytes: 34. Node source: NodeSource
redis 集群似乎沒有問題,我認為我需要在客戶端 redis 連接池配置(如上所述)中進行調整以使其工作。
請建議我需要在我的 confs 中進行的更改
我也很好奇是否應該在進行 get/set 調用后關閉Redis
連接。 我試過找到這個,但沒有發現關於如何關閉Redis
連接的結論
我想問的最后一件事是,是否有任何機制可以在Redisson
中獲取Redis
連接池統計信息(活動連接、空閑連接等)
編輯1:
我已經嘗試通過在 3 次不同的迭代中更改以下值
迭代 1:
idleConnectionTimeout: 30000
connectTimeout: 30000
timeout: 30000
迭代 2:
nettyThreads: 0
迭代 3:
connectionMinimumIdleSize: 100
connectionPoolSize: 750
我已經嘗試過這些東西,但沒有任何東西對我有用
任何幫助表示贊賞。
提前致謝
假設您在緩存 JVM 上收到低 memory 警報。
您可能需要分析流量並確定兩件事
兩者都可以由服務器上的流量決定。
對於選項 1,配置池大小可以解決您的問題,但對於選項 2,您可能必須重構代碼以將數據保存在較小的塊中。
嘗試設置nettyThreads = 64
設置
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.