Demander à Elasticsearch à partir du nœud expire
Je suis de la configuration d'un simple Node.js RESTE interface avec Elasticsearch, à l'aide de l'officiel Javascript client. Je suis l'exécution de ce code en local, mais le groupe est situé à distance. Quand je vais à travers le navigateur, avec la _head
plugin, je peux me connecter à l'ES et de la requête sans problème. Cependant, de le faire via le client de Javascript fois sur toutes les demandes. J'ai configuré le ElasticSearch objet, mais d'envoyer toute demande simplement ne fonctionne pas. Je ne pense pas que c'est un problème de réseau, parce que je peux accéder ES à travers le navigateur. C'est de cette façon que je demande quelque chose, un très de base obtenir:
var elasticsearch = require("elasticsearch");
var es = new elasticsearch.Client({
host: "https://my-address:9200/", //also tried without protocol part and trailing slashes
log: "error",
sniffOnStart: true
});
es.get({
index: "things",
type: "someThing",
id: "42"
}).then(doSomeStuff, handleStuffFailed);
Cela échoue avec un message d'erreur simple Errror: Request timeout after 30000ms.
Suis-je manqué quelque chose? J'ai lu à travers le client docs, et cela semble être la base "hello world" pour le client.
source d'informationauteur Kroltan
Vous devez vous connecter pour publier un commentaire.
Essayer l'extension de la requestTimeout paramètre lors de l'instanciation de l'ES Client.
J'ai eu un long processus en cours d'exécution qui a eu un peu moins de 10 minutes. En faisant de la requestTimeout valeur de 60000 (10 minutes) le processus complet sans délai.
Nous avons également eu ce problème sur QBox en raison de sniffOnStart.
Essayez avec cette config:
Vous verrez que les nœuds de l'ip ip privée.
De notre côté, nous avons décidé de désactiver la détection et l'ajouter manuellement le tableau de public nœud hôte adresses comme ceci:
Vérifier ici sur cette question: https://github.com/elastic/elasticsearch-js/issues/186
Je suppose que nous avons besoin d'utiliser la
requestTimeout
variable comme mentionné ci-dessus.Concernant les délais d'attente dans elastic search, vous devez faire la distinction entre deux types de délais d'attente:
Initialisation délai: Lorsque vous initialisez ES:
requestTimeout
pingTimeout
à la fois de ce qui est par défaut 30000ms. Lire la suite: Documentation de la Configuration dans l'élastique de la documentation de rechercheDes opérations délais d'attente: de Nombreuses opérations telles que
bulk
create
delete
index
pouvez définirtimeout
trop. Dire si vous avez une énorme vrac objet à insérer, vous pouvez simplement mettre en fonctionnement basé sur les délais d'expiration: Elastic Search documentationsVous devriez savoir que l'opération de base délais d'expiration de remplacer l'initialisation
RequestTimeout
.Vérifiez les points suivants si vous voyez
fois dans 30000ms
Augmentez le délai pour kibana dans kibana.yml --> elasticsearch.requestTimeout:
120000
Redémarrez kibana service
découvrez:sampleSize sous Gestion - paramètres Avancés --> Modifier le
valeur en conséquence
de LB.
Je suis également confronté à ce problème, s'il vous plaît essayer cela avec le temps inifinity