Elasticsearch进阶之路:动态模板和性能优化
项目背景:项目中使用Elasticsearch做业务数据库,主要用于持久化要多条件Term索引,不涉及分词功能;由于数据量大,一年大概有5TB数据量,读取并发量大。数据需要1年热备,永久冷备。基于以上条件做优化。由于需要多索引支持部分字段聚合,所以没选择Hbase.
(版本:Elasticsearch 6.5.4)
-
分表存储
根据业务情况按月分表存储,使用别名实现跨月查询。 -
Setting the heap size
ES默认堆大小是 1G 、参考官网建议,设置为服务器内存50%,但不超过32G阈值。
https://www.elastic.co/guide/en/elasticsearch/reference/current/heap-size.html -
设置压缩方式
ES默认使用LZ4压缩存储的数据,best_compression 相比LZ4有更高的压缩比,代价是存储的性能相对较慢。
“index.codec”: “best_compression” -
Setting初始化设置
Settings settings = Settings.builder()
.put("index.number_of_shards", 6)
.put("index.number_of_replicas", 1)
.put("index.refresh_interval", "10s")</