我们在 AWS 环境中使用 Redisson 版本 3.6.1,并在具有 2 个节点的复制模式下设置 ElastiCache。我们的主要操作是针对 LRU 有界RMapCache
(https://github.com/redisson/redisson/wiki/7.-distributed-collections#714-lru-bounded-map),我们只是get
和put
数据(设置了maxSize
50 万条记录) )。
然而,即使在非常低的负载下,我们也会遇到一系列的org.redisson.client.RedisTimeoutException
with 消息。而且,这种现象似乎主要发生在 AWS ElastiCache 的主节点上。在我们与 Redis 通信的一些服务(通过 Redisson)上,这似乎并不是一个问题,尽管这种超时也会发生,但频率较低。Unable to send command: ....
Redis ElastiCache 集群似乎完全没有压力。CPU 利用率通常为 1-2%。为了在这种情况下快速失败并防止我们的服务线程长时间保持阻塞,我们已经减少了数量retryInterval
和。retryAttempts
然而,在如此低的负载(大约 100 redisson req/s)下,有人会期望根本不会遇到这样的问题。