У меня есть потребитель NodeJ, отправляющий данные в Elasticsearch со скоростью 2 000 TPS более или менее.Мне нужно сохранять запросы по мере их получения, и, если будет какой-либо ответ, позже мне потребуется обновить информацию по запросу, добавив некоторые данные из ответа.Дело в том, что из-за высокого TPS у меня возникает много проблем, когда ответ поступает в Elasticsearch до запроса и т. Д., И это создает конфликт версий в _doc.это часть моего кода узла, которая делает upsert.Мне нужна помощь в оптимизации этого кода.Заранее большое спасибо.
sendToElasticSearch(index, type, id, body, cb) {
out('starting sendToElasticSearch()');
var me = this;
me.client.exists({
index: index,
type: type,
id: id
}, function(err, exists) {
if (err) {
cb(err)
} else {
if (exists === true) {
out('exists. doing update.');
// update existing document
me.client.update({
index: index,
type: type,
id: id,
body: body
}, function(err, resp) {
if (err) {
cb(err);
} else {
cb(null, resp);
}
});
} else {
out('adding new document');
// add new document
me.client.create({
index: index,
type: type,
id: id,
body: body
}, function(err, resp) {
if (err) {
cb(err);
} else {
cb(null, resp);
}
});
}
}
});
}