今天项目里面使用es查询报了一下错误,看了下监控查询qps也不算太高,但是es里面不时会抛出下面的错误,不知道是什么原因?
{"error":{"root_cause":[{"type":"dsl_rate_limit_exception","reason":"query dsl flow limit, please wait and try again!, dsl=V2_F7B859E17C4D254B30BE7EAA9F44E16B"}],"type":"dsl_rate_limit_exception","reason":"query dsl flow limit, please wait and try again!, dsl=V2_F7B859E17C4D254B30BE7EAA9F44E16B"},"status":400} at org.elasticsearch.client.RestClient.convertResponse(RestClient.java:283) at org.elasticsearch.client.RestClient.performRequest(RestClient.java:261) at org.elasticsearch.client.RestClient.performRequest(RestClient.java:235) at org.elasticsearch.client.RestHighLevelClient.internalPerformRequest(RestHighLevelClient.java:1764) ... 12 more
已经找到原因了!!!
原来es集群里面设置了一个query dsl flow limit 限流,这个参数需要调大。希望下次遇到这个问题的时候不要被坑了
扩展一下
es集群里面常见的几种限流 write flowlimit 写请求限流 query flowlimit 读请求限流(用户限流) query dsl flow limit 针对每一个dsl进行限流