ElasticSearch dynamic script 详解
问题描述
近工程中会使用到ElasticSearch(以下统称ES),就是将一些统计结果(点击量:click_count,曝光量:impr_count,点击曝光比:ctr=click_count/impr_count)写入到ES,会用到ES的dynamic script去实时修改ctr。然后就遇到了too many dynamic script rejected的问题。
问题解决过程
1. 获取EsClient的源码
public static synchronized TransportClient getInstance() throws UnknownHostException {
if(transportClient == null){
String clusterName = DataSourceUtils.getProperteValue("es.cluster", "es");
String host = DataSourceUtils.getProperteValue("es.host","localhost");
Integer port = Integer.parseInt(DataSourceUtils.getProperteValue("es.port","9300"));
Settings settings = Settings.builder()
.put("cluster.name", clusterName)
.put("client.transport.sniff", true)
.build();
transportClient = new PreBuiltTransportClient(settings).addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName(host), port));
}
return transportClient;
}
相关文章