连接时,Redis客户端超时

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

多个进程连接到Redis群集。 每个进程都在一个Docker容器中。 进程并不完全相同 – 我有一个web进程,一个worker进程等等。

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

当我从任何其他容器使用redis-cli ,我连接没有问题。

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

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

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

Josiah和我在Redis Google小组进行了长时间的讨论,这帮助我解决了这个问题。 希望这个讨论可以帮助未来的其他人。

Interesting Posts