连接

时间:2015-07-01 17:27:40

标签: ruby redis docker amazon-elasticache

我在ElastiCache上运行了一个Redis集群。

多个进程连接到Redis群集。每个进程都存在于Docker容器中。这些流程并非完全相同 - 我有web流程,worker流程等。

在正常运行几天后,我的一些web进程在连接到Redis时开始超时。当我ssh进入受影响的web容器并尝试通过redis-cli访问群集时,我与群集的连接超时。这告诉我问题影响整个容器,而不仅仅是web进程。

当我从任何其他容器中使用redis-cli时,我会毫无问题地连接。

我的web进程会根据需要创建新连接,并在长时间闲置时关闭旧连接。我的猜测是,任何给定的Docker容器都可以在达到某种限制之前打开一定数量的连接。几天后,我的web容器达到了这个限制。

任何想法如何解决这个问题?

-

还有一个细节:出于某种原因,重置我的Redis群集可以解决所有web容器中的问题。也许Redis服务器对可以从给定IP地址打开多少个连接施加限制?

1 个答案:

答案 0 :(得分:0)

乔赛亚和我进行了长时间的讨论on the Redis Google group,这有助于解决我的问题;希望讨论可以在将来帮助其他人。