我在ElastiCache上运行了一个Redis集群。
多个进程连接到Redis群集。每个进程都存在于Docker容器中。这些流程并非完全相同 - 我有web
流程,worker
流程等。
在正常运行几天后,我的一些web
进程在连接到Redis时开始超时。当我ssh
进入受影响的web
容器并尝试通过redis-cli
访问群集时,我与群集的连接超时。这告诉我问题影响整个容器,而不仅仅是web
进程。
当我从任何其他容器中使用redis-cli
时,我会毫无问题地连接。
我的web
进程会根据需要创建新连接,并在长时间闲置时关闭旧连接。我的猜测是,任何给定的Docker容器都可以在达到某种限制之前打开一定数量的连接。几天后,我的web
容器达到了这个限制。
任何想法如何解决这个问题?
-
还有一个细节:出于某种原因,重置我的Redis群集可以解决所有web
容器中的问题。也许Redis服务器对可以从给定IP地址打开多少个连接施加限制?