2016-11-29 2 views
3

Le client Python elasticsearch de mon application rencontre des problèmes de connectivité (connexions refusées) car les connexions TCP inactives expirent en raison d'un pare-feu (je n'ai aucun moyen d'empêcher cela).Utilisation du sniff avec le client python elasticsearch pour résoudre les problèmes de connexion TCP

La meilleure façon pour moi de résoudre ce problème serait si je pouvais empêcher la connexion d'aller au ralenti en envoyant des données sur périodiquement, les options reniflant dans le client ElasticSearch semble idéal pour cela, mais ils sont not very well documented:

sniff_on_start - drapeau indiquant si l'obtention d'une liste de noeuds du Pôle de la fin du temps de démarrage

sniffer_timeout - nombre de secondes entre

reniflements automatiques

sniff_on_connection_fail - drapeau contrôle en cas de panne de connexion déclenche un reniflement

sniff_timeout - délai d'attente utilisé pour la demande de sniff - il devrait être un appel api rapide et nous parlons potentiellement à plusieurs noeuds que nous voulons échouer rapidement. Non utilisé lors du reniflage initial (si sniff_on_start est activé) lorsque la connexion n'est toujours pas initialisée.

Ce que je voudrais est pour le client à renifler tous (par exemple) 5 minutes, devrais-je utiliser l'option sniff_timeout ou sniffer_timeout? En outre, le paramètre sniff_on_start doit-il être défini sur True?

+1

Cette réponse pourrait vous aider: http://stackoverflow.com/questions/39640200/elasticsearch-python-client-work-with-many-nodes-how-to-work-with-sniffer/39640389#39640389 – Val

+0

@val J'ai utilisé les paramètres de cette réponse et rendra compte si cela fonctionne. Prend un peu de temps pour tester cela. –

+0

@val ça a marché! merci - J'ai laissé une réponse à cette question au cas où d'autres personnes ont ce problème. –

Répondre

0

J'ai utilisé la suggestion de @val et a constaté que ces paramètres a résolu mon problème:

sniff_on_start=True 
sniffer_timeout=60 
sniff_on_connection_fail=True 

Le sniffing met suffisamment de trafic sur les connexions TCP, de sorte qu'ils ne sont jamais au repos assez longtemps pour que notre pare-feu pour tuer le conneciton.