赞
踩
(ES版本5.0以上)通过调用RollOver接口结合时间工具,实现索引的按日期动态滚动。 curl -XPOST 'localhost:9200/in_test/_rollover?pretty' -H 'Content-Type: application/json' -d' { "conditions": { "max_age": "30d", "max_docs": 1000000, "max_size": "500gb", } } ' 如果系统中需要按月生成新索引或者当文档数达到100万条、索引大小达到500G时生成新索引,可以采用上面的命令。
公司中根据按月生成新索引。
每月对ES索引做force_merge操作,以释放空间。
max_num_segments, 设置最大segement数量,数量越小,查询速度提高越明显,但merge耗时越长
从 5.0 版本开始,Elasticsearch 新提供了 shrink 接口,可以成倍数的合并分片数。
注:所谓成倍数的,就是原来有 15 个分片,可以合并缩减成 5 个或者 3 个或者 1 个分片。
采取curator进行索引的声明周期管理,将两年外的数据进行备份后删除
将业务经常查询的数据及词进行打标签,统一放到nested结构中,当业务再次使用时,只需查询nested对应词的标签即可,无需再进行分词查询,极大地提高了速度。
底层: FST(Finite State Transducer)
FST优点:
- 通过对词典中单词前缀和后缀重复利用,压缩了存储空间。
2.查询速度快
具体不再赘述,原理较简单。
内网一般不会出现,可以监控内网流量状态,外网出现的可能性比较大
主节点既负责管理集群又要存储数据,当访问量大时,可以导致es实例反应不过来,无法作出相应。此时其他节点在向主节点发送信息时得不到主节点的信息,会认为主节点挂了,从而重新选择主节点。
在es集群中配置2-3个主节点并且让他们只负责管理不负责存储,从节点禁用自动发现机制并为其指定主节点。
在elasteicsearch.yml中
主节点: node.master=true node.data=false
从节点: node.master=false node.data=true
discovery.zen.ping.multicast.enabled:false
此参数指定从节点访问主节点后若3s内无回复则默认主节点挂了,可把它适当调大,以减少脑裂概率
2. discovery.zen.mininum_master_nodes:1
当具备成为主节点的从节点的个数满足这个数字且都认为主节点挂了则会进行选举产生新的主节点
如: es集群有3个从节点有资格成为主节点,这时这3个节点都认为主节点挂了,则会进行选举,此时如果这个参数值为4,则不会进行选举。可适当把这个值调大,减少出现脑裂的概率,官方给出的建议为:(n/2)+1,n为有资格成为主节点的节点数node.master=true.
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。