AWS Elasticache (Redis) 连接池管理

问题描述 投票:0回答:0

我有一项服务使用 AWS Elasticache Redis 来缓存数据。它使用 Jedis 客户端连接到 Redis 集群并实现查询。 对于 jedis 客户端,连接配置是这样的:

cachePool:
  max_total: 200
  max_idle: 200
  min_idle: 50
  block_when_exhausted: true
  max_wait_ms: 200

此服务大约有 50 个 pod 在生产环境中运行。在每个 pod 上,有一个进程在运行,这意味着有一个 jedis 客户端实例。 因此,当我查看 AWS 控制台的当前连接指标时,我看到了大约 2500 个连接。每个池有 50 个空闲连接 * 50(每个 pod 1 个)。

现在通常,我希望在任何给定时间看到 0 个新连接。如果流量突然激增,我希望看到新连接增加,当前连接也会增加。一旦流量恢复正常,我希望看到新连接恢复到 0。

但是,我在 AWS 控制台中看到的是新连接和当前连接的图表几乎相同。因此,即使流量正常,我的服务也会在任何给定时间建立 2500 个新连接。

关于如何解决这个问题有什么建议吗?

amazon-web-services redis connection-pooling
© www.soinside.com 2019 - 2024. All rights reserved.