ES elasticsearch集群入门

1 介绍

使用单机的版的elasticsearch 可以完成检索,但是如果要实现高可用的话,就需要搭建集群。集群不仅可以实现高可用,也能实现海量数据存储的横向扩展。

2 核心原理

  • 每个索引会被分成多个分片shards进行存储,默认创建索引是分配5个分片进行存储。每个分片都会分布式部署在多个不同的节点上进行部署,该分片成为primary shards。

    注意:索引的主分片primary shards定义好后,后面不能做修改。

  • 为了实现高可用数据的高可用,主分片可以有对应的备分片replics shards,replic shards分片承载了负责容错、以及请求的负载均衡。

    注意: 每一个主分片为了实现高可用,都会有自己对应的备分片,主分片对应的备分片不能存放同一台服务器上。主分片primary shards可以和其他replics shards存放在同一个node节点上。

  • documnet routing(数据路由)

    当客户端发起创建document的时候,es需要确定这个document放在该index哪个shard上。这个过程就是数据路由。

    路由算法:shard = hash(routing) % number_of_primary_shards

    如果number_of_primary_shards在查询的时候取余发生的变化,无法获取到该数据

    注意:索引的主分片数量定义好后,不能被修改

3 分片机制

每个索引都可以被分片。

  • 每个主分片都包含索引的数据,如果是单机部署的话,副本分片不存在,集群的健康值就显示为黄色(可使用header插件查看)
  • 副本分片是主分片的备份,如果主分片服务宕机,备份可以保证正常访问
  • 同一个分片的主与副本是不会放在同一个服务器里的,因为一旦这台机器宕机,这个分片就没有了,造成了数据缺失

4 相关信息

  • 博文不易,辛苦各位猿友点个关注和赞,感谢

你可能感兴趣的:(ES elasticsearch集群入门)