基本要求:
1、数据从产生到可检索的实时性要求高。
2、最新数据的查询和统计频率高,返回速度要求快。
3、历史数据要保留的时间长。
一、冷热数据分离
1、热点数据相对冷数据更小,可以配置低一点的heap-size,比如26G,冷数据配置31G 。
2、在业务低峰期把热数据迁移到冷节点。
3、热节点数据可以启用压缩项(在cpu空闲的时候可以启用),这样迁移的数据量会更小,
在冷节点配置索引压缩选项,执行force merge操作的时候,ES会自动将结点上配置的索引压缩属性用到merge过后新生成的segment上。
4、冷节点上索引默认是用的mmapfs读取方式,可以使用niofs效果更好。
二、热数据分组管理
1、在各节点的配置文件中增加自定义的标签属性,将服务器区分到不同的组别中,通过设置index.routing.allocation.include属性,
控制该索引分布在哪个组别,同时配置index.routing.allocation.total_shards_per_node可以做到某个索引的shard在具体的group节点之间
数据的均匀分布,解决热点问题。
2、可以分10台机器一个分组,2台机器一个分组(一个主分片,一个副本分片)。
3、冷节点可以不做shard分布的精细控制,所有数据迁移到冷数据节点后,由ES默认的shard分布策略去控制数据的分布。
三、索引的rollover管理
1、rollover api可以让索引根据预先定义的时间跨度,或者索引大小来自动切分出新的索引,从而将索引的大小控制在计划的范围内。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。