我有点怀疑你在刷屏

Elasticsearch proxy开发

Elasticsearch | 作者 chinagrowing | 发布于2018年03月27日 | 阅读数:6916

背景:Elasticsearch 直接提供给公司业务方使用,有时候会出现查询条件不合理的情况。例如:对某时间字段(比如叫datefield)做聚合查询“date_histogram”,时间间隔“internal”设置为1s,datefield的跨度为10年。那么返回的bucket数量有3亿多,集群可能直接就OOM了。

问题:想在es上做一层代理,对业务方过来的查询条件做检查过滤,减少不合理的查询条件。业务方直接调取proxy接口,而不是直接访问es,把一些潜在风险规避。不知道大神们有没有相关的经验可以提供些参考?

PS:接触es时间不长,积累的case也比较少,希望可以多提供一些建议。
已邀请:
我们公司在多个ES集群之上搭建API网关集群,用于API审核、API降级、API限流、API权限控制,在API网关集群之上是LVS+Nginx集群,对业务方提供VIP地址。API网关是基于ES源码中通信模块二次开发,tcp方式跟访问原生ES集群一致,http方式在原有Restful接口之上增加直接通过传入sql语句方式访问。用户查询语句收集采集到ES,用于分析用户查询语句的特点,不合理的查询语句给用户建议优化,对于聚合字段基数过大的查询语句拒绝查询等。

taogger

赞同来自:

同求,顶上去,还有大家的查询tp99响应时长一般多久呢?

psc0606

赞同来自:

你这个需求本身就不合理,10年的数据,internal为1s,全部展示你也没法看。

要回复问题请先登录注册