Java 相干
问:Elasticsearch 应用 ES_JAVA_OPTS 环境变量来配置 JVM,比拟罕用的配置为 Xms,最小堆内存,Xmx,最大堆内存,设置的倡议是什么?答:这两个值的最佳实际是替换 2g 为应用物理机或者虚拟机的内存的一半
分布式相干
问:分布式个别应用几个节点:答:分布式一半应用奇数个节点,因为如果咱们集群中有三个节点,ABC,如果 A 和 B,C 失联,那么 B 和 C 会发现连贯不上 A,就会标记 A 失联,而他们能够选举新的主节点,所以分布式系统个别都应用 2n+1 其中 n >0 个节点,生产零碎中,起码为 3 个节点。
集群衰弱度
集群衰弱度分为分片衰弱度,索引衰弱度,集群衰弱度,指标分为绿,黄,红,三个等级。
分片衰弱度
红:至多一个主分片没有被调配。黄:至多一个正本调配没有被调配 绿:主副分片都失常调配。
索引衰弱度
索引衰弱度是此分片中最差的衰弱度。
集群衰弱度
集群衰弱度是此集群上索引中最差的衰弱度。
衰弱度相干 API
GET /_cluster/health 获取集群的衰弱状态
GET /_cluster/health?level=indices 获取所有索引的衰弱状态
GET /_cluster/health/<index> 获取单个索引的衰弱状态
GET /_cluster/allocation/explain 返回第一个未调配分片的起因
集群不衰弱排查流程
在节点离线当前,有可能因为节点数量不够,导致分片无奈调配,此时须要减少新的分片,让其重新分配。
索引配置谬误,分片规定配置谬误,导致无奈调配,这个时候须要重新配置索引,重新配置分片。
磁盘空间有余:当产生磁盘空间有余的时候,有可能也会导致调配失败,这个时候须要从新划分新的磁盘空间。呈现的谬误为 DANGLING_INDEX_IMPORTE
当呈现 EXISTING_INDEX_RESTORED 谬误时候,索引被敞开,须要把索引删除,再复原。
节点诊断
节点诊断 API
GET /_cat/nodes?v 查看节点到根本信息即负载状况
GET /_nodes/stats/indices 查看节点的索引详情
POST /_cache/clear 革除节点缓存
节点内存问题
Elasticserach 集群长时间 GC 可能会导致集群变慢,产生 OOM,甚至产生离线,这个时候须要进行诊断,个别由以下这几种状况会产生节点内存 OOM
缓存占用过多内存。
大量简单的嵌套聚合可能引发频繁 GC
有些时候须要配置断路器用来限度申请的查问,避免出现大量的 OOM
Shard
Elasticsearch 把一个索引分成多个 Shard 存储。个别倡议单个 shard 大小为 20G 到 50G,对于一般搜寻类的数据管制在 20G,日志数据管制在 50G,每个节点数据管制在 2T。
相干 API
GET /_cat/shards/<index> 查看 Shard 信息
POST /<alias>/_rollover/<target-index> 当索引满足某些条件时(如数据量太大)主动切到新的索引,非常适合无奈预估大小的工夫序列类索引
POST /<index>/_forcemerge 强制合并索引数据
POST /<index>/_shrink/<target-index> 新建索引并缩小主分片数量
POST /<index>/_split/<target-index> 新建索引并减少主分片数量
POST /_reindex 重建索引
深度分页
分页有三种形式
from + size
from 定义数据偏移量,size 定义数据获取量,相似于 sql 的 offset 和 limit。
scroll API
scroll 相似于 sql 的游标,查问的时候指定 scroll= 工夫参数应用,返回的后果带上 scroll_id 下次查问的时候只须要指定 scroll_id 即可。
POST /<index>/_search?scroll=1m
{
"size": 100,
"query": {
"match" : {"title" : "elasticsearch"}
}
}
POST /_search/scroll
{
"scroll" : "1m",
"scroll_id" : "DXF1ZXJ5QW5kRmV0Y2gBAAAAAAAAAD4WYm9laVYtZndUQlNsdDcwakFMNjU1QQ=="
}
Search After API
Search After API 用作前一次后果作为下一次的查问条件,在查问体重应用 search_after 参数,示例如下
GET <index>/_search
{
"size": 10,
"query": {
"match" : {"title" : "elasticsearch"}
},
"search_after": [1463538857, "654323"],
"sort": [{"date": "asc"},
{"_id": "asc"}
]
}
看完三件事❤️
如果你感觉这篇内容对你还蛮有帮忙,我想邀请你帮我三个小忙:
点赞,转发,有你们的『点赞和评论』,才是我发明的能源。
关注公众号『Java 斗帝』,不定期分享原创常识。
同时能够期待后续文章 ing????