连接时,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小组进行了长时间的讨论,这帮助我解决了这个问题。 希望这个讨论可以帮助未来的其他人。