一、几个核心概念
1、节点:一个节点(Node)就是一个es进程,一个服务器可以部署多个节点
查询节点以及节点信息:
http://127.0.0.1:9200/_cat/nodes?v
2、角色,是指节点在集群中担任什么角色:
五角星节点:才是主节点
master:候选节点,当主节点宕机了,master有可能成为主节点,一个集群节点可能有多个候选节点,五角星节点才是主节点;
data:数据节点,所有的数据都存放在数据节点上
data_content: 数据内容节点
data_hot: 热数据节点
data_warn:不冷不热数据节点
data_code:冷数据节点
lngest:预处理节点,比如日志,可以先处理,过滤,再查询
ml:机器学习节点
transform:
voting_only:
3、分片与副本:
主分片:读写,7.0后默认一个主分片,之前默认5个,粗边框
副本分片:备份
分片与副本存在数据一致性问题
索引创建后,主分片熟练是确定的,副本文件是可以调整的
ES会自动在nodes上做分片再均衡
4、集群:多个节点组成的高可用的
集群健康值状态:
Green:所有promary和replica均为active,集群健康可用
Yellow:至少有一个replica不可用,但primary均为可用,数据仍然可以保证完整
Red:至少一个primary不可用,数据不完整,集群不可用
健康值检查命令:
http://127.0.0.1:9200/_cat/health
http://127.0.0.1:9200/_cluster/health
5、索引和文档
索引:相当于mysql的table
索引类型type:在es7.0及以前有这个概念,相当于索引分类,一个索引可以 由多个type组成,相当于数据的逻辑分类,es8.0后删除了该概念,过渡期默认的索引类型是_doc;
文档:最小存储单元,相当于table里面的一行数据,doc,
编写规范:
(1)遵循restfull风格
(2)使用小写,多个单词用下划线隔开,如
POST 索引名称/索引类型(默认_doc)/id