6

我用大数据做了一个elasticsearch集群,客户端可以向它发送搜索请求。有时,集群会花费大量时间来处理一个请求。我的问题是,是否有任何 API 可以杀死花费太多时间的指定线程?

4

2 回答 2

2

现在弹性搜索 1.0.0 已经发布,我想跟进这个答案。我很高兴地宣布,已经引入了一种新功能,可以对堆实施一些保护,称为断路器。

在当前的实现中,断路器会尝试预测有多少数据将被加载到字段数据缓存中,如果它大于限制(默认为 80%),它将触发断路器并终止您的查询.

如果要修改它们,有两个参数供您设置:

indices.fielddata.breaker.limit

indices.fielddata.breaker.overhead

开销是用于估计将有多少数据加载到字段缓存中的常量;默认为 1.03。

这是 Elasticsearch 的一个令人兴奋的发展,也是我等待实现数月的一个功能。

如果有兴趣了解它是如何制作的,这是拉取请求;感谢 dakrone 完成这项工作!

https://github.com/elasticsearch/elasticsearch/pull/4261

希望这会有所帮助,马修J

于 2014-02-20T15:38:01.773 回答
2

目前无法终止或停止长时间运行的查询,但 Elasticsearch 将添加一个任务管理 API 来执行此操作。该 API 很可能会在 Elasticsearch 5.0 中添加,可能在 2016 年或更晚。

请参阅任务管理 1任务管理 2

于 2016-01-04T07:29:58.483 回答