2016-06-24 7 views
0

So habe ich Knoten App Docker Container ausgeführt, und sie laufen gut, aber ich bemerkte im Laufe von 1-2 Monaten alle meine Anwendungen begonnen Fehler mit redis, scheint wie die Verbindung es nicht macht/wird abgelehnt. Dies ist der Fehler:Redis-Verbindung fehlgeschlagen

Fehler: Redis Verbindung xx.xxxxx: failed xxxx - verbinden ETIMEDOUT

Ich habe bemerkt, dass ich ein paar Verbindungen im Leerlauf haben, so scheint es, wie es ist etwas, das nicht ist sich richtig schließen. Ich habe ungenutzte Verbindungen, die Monate alt sind (ein Problem, das auch zu beheben ist), aber Redis sollte nicht fehlschlagen, wenn ich ungenutzte Verbindungen habe, ich bin sicher, dass ich sein Limit nicht erreicht habe.

Irgendwelche Ideen?

Antwort

0

Redis erfordert eine spezifische Einrichtung in seiner Host-Maschine, deshalb ist es sehr zu einer „Redis bereit Maschine Docker host“ angebracht ist, wenn Sie versuchen, es in einer Umgebung Docker Behälter zu verwenden.

sollten Sie versuchen, diese Zeilen hinzufügen:

net.ipv4.tcp_tw_reuse = 1 
net.ipv4.tcp_tw_recycle = 1 

in Ihre Docker Host-Maschinen /etc/sysctl.conf Datei, die ausgeführt redis Containern.

Bitte lassen Sie mich wissen, wenn es funktioniert.

+0

Was würde das tun? Und wie hängt es mit der Sterblichkeit der Redis-Verbindung zusammen? – user2417731

+0

Hallo, Verbindungen sind nicht im Sterben, Verbindungen sind fehlgeschlagen. Nicht das gleiche ;) . TCP TIME_WAIT state "ermöglicht dem Betriebssystem, TIME_WAIT TCP-Sockets schnell wiederzuverwenden". Bitte überprüfen Sie dies, vielleicht könnte helfen http://redis4you.com/articles.php?id=012&name=redis – JorelC

+0

Sie sagen, dass Verbindungen scheitern, weil es zu lange warten, um Verbindungen zu schließen? Ich habe Verbindungen, die Monate alt sind, sicherlich kann die TIME_WAIT nicht so lange sein? – user2417731