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
erhaltensniffer_timeout - zwischen automatischen sniffs
012 Anzahl der Sekunden,sniff_on_connection_fail - Flag Steuerung wenn Verbindungsfehler lösen ein sniffsniff_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?
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
@val Ich habe die Einstellungen aus dieser Antwort verwendet und werde zurückmelden, wenn es funktioniert. Nimmt einige Zeit, um dies zu testen. –
@val es hat funktioniert! Danke - Ich habe eine Antwort darauf hinterlassen, falls andere Leute dieses Problem haben. –