Inverted Index,相当于MySQL中的database, document集合,index数据可以分为多个 shard 分片
node ,一个 es实例就是一个node, 1个node不等同于1台服务器。一个node下拥有多个 index
shard
相当于一个索引的数据用多个杯子(shard)来装, 这样可以将数据分布在多个node上,完成数据的分布式部署,每个分片都是一个 lucene index(全文搜索引擎)的实例primary shard : 相当于主库,可读可写replica shard : 数据备份,相当于从库读,提高读吞吐量。当主分片失效时,同坐自动的election, replica可以成为 primaryindex-mysql_database; type-mysql_table; document-mysql_row; field-mysql_field
数据通过切片分布在多个节点上,在 es 中每个节点都可以完成用户的检索请求,安装不同的服务功能划分为3类职责:master/data/client
masterNode 创建/删除/分配切片dataNode 数据查询/数据写入clientNode 纯转发clientNode 可以增加集群的访问吞吐量,但是 masterNode 掌握了集群中其它节点的数据元信息(及分片的分布情况)es 通过 discovery 模块来完成新加入节点的发现和已有的节点宕机发现,新节点加入前已通过配置确认新节点的身份。宕机节点通过集群中其它节点的 unicast 机制来发现节点宕机情况,并自动剔除集权 同时 es 集群通过自动选举解决了集群首脑masterNode 宕机时服务不可用的问题