我正在通过Google cloud managed redis cluster(v5)使用redisson(3.12.5)
下面是我在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连接池(上面提到)--以使它工作。
请给我建议,我需要在我的忏悔中做些改变。
我也很好奇是否应该在发出get/set调用之后关闭Redis连接。我尝试过找到这个,但是没有发现关于如何关闭Redis连接的结论。
我想问的最后一件事是,是否有任何机制可以在Redis中获取Redisson连接池的状态(活动连接、空闲连接等)
Edit1:
我尝试过在以下三个不同的迭代中更改值
迭代1:
idleConnectionTimeout: 30000
connectTimeout: 30000
timeout: 30000迭代2:
nettyThreads: 0
迭代3:
connectionMinimumIdleSize: 100
connectionPoolSize: 750我试过这些东西,但对我没什么用。
任何帮助都是非常感谢的。
提前感谢
发布于 2022-03-02 13:41:11
假设您在缓存JVM上得到内存不足的警报。
您可能需要分析流量并确定两件事。
两者都可以由服务器上的流量来确定。
对于选项1,配置池大小可以解决问题,但对于选项2,您可能必须重构代码以将数据保存在较小的块中。
发布于 2022-09-17 06:13:04
尝试设置nettyThreads = 64设置
https://stackoverflow.com/questions/70865073
复制相似问题