2016-11-29 4 views
3

Der Python elasticsearch-Client in meiner Anwendung hat Verbindungsprobleme (abgelehnte Verbindungen), weil Leerlauf TCP-Verbindungen wegen einer Firewall Timeout ist (ich habe keine Möglichkeit, dies zu verhindern).Verwenden von Sniffing mit Python elasticsearch Client zum Lösen von TCP-Verbindungsproblemen

Der einfachste Weg für mich zu beheben wäre, wenn ich die Verbindung aus dem Leerlauf durch Senden von Daten in regelmäßigen Abständen verhindern könnte, scheinen die Sniffing-Optionen im Elasticsearch-Client dafür ideal, aber sie sind not very well documented:

sniff_on_start - flag, das anzeigt, ob eine Liste von Knoten vom cluser beim Start

erhalten

sniffer_timeout - zwischen automatischen sniffs

012 Anzahl der Sekunden,sniff_on_connection_fail - Flag Steuerung wenn Verbindungsfehler lösen ein sniff

sniff_timeout - Timeout für die Schnüffelanforderung verwendet - es sollte ein schneller api Anruf und wir sprechen hier möglicherweise zu mehr Knoten, so dass wir schnell zum Scheitern verurteilt werden sollen. Wird beim ersten Sniffing nicht verwendet (wenn sniff_on_start aktiviert ist), wenn die Verbindung noch nicht initialisiert ist.

Was Ich mag würde, ist für den Kunden alle (sagen wir) 5 Minuten zu riechen, sollte ich die sniff_timeout oder sniffer_timeout Option verwenden? Soll der Parameter sniff_on_start auch auf True gesetzt werden?

+1

Diese Antwort könnte helfen: http://stackoverflow.com/questions/39640200/elasticsearch-python-client-work-with-many-nodes-how-to-work-with-sniffer/39640389#39640389 – Val

+0

@val Ich habe die Einstellungen aus dieser Antwort verwendet und werde zurückmelden, wenn es funktioniert. Nimmt einige Zeit, um dies zu testen. –

+0

@val es hat funktioniert! Danke - Ich habe eine Antwort darauf hinterlassen, falls andere Leute dieses Problem haben. –

Antwort

0

verwenden ich den Vorschlag von @val und festgestellt, dass diese Einstellungen meines Problem gelöst:

sniff_on_start=True 
sniffer_timeout=60 
sniff_on_connection_fail=True 

Das Schnüffeln legt genug Verkehr auf den TCP-Verbindungen, so dass sie nie im Leerlauf für lange genug für unseren Firewall die töten Verbindung.

Verwandte Themen