es分布式架构原理

ElasticSearch如何实现分布式的

搜索之前主要是lucene比较流行,而ElasticSearch就是基于lucene的分布式搜索引擎

ElasticSearch的基本存储结构

index(索引) -> type(移除) -> mapping(移除) -> document (文档)-> field(字段)

分布式架构

每个索引可以分为多个shard(分片),每个shard可以存储部分数据。这样有两个好处。

  1. 支持横向扩展。比如你现在有3T的数据,分成3个shard。每个shard就是1T的数据。若现在数据增长到4T了,我们就重新建立一个有4个shard的索引,将数据导进去。
  2. 提高性能。多个数据分布在多个shard,就是多台服务器。所有的操作都是在多台机器上并行的分布式执行。提搞了吞吐量和性能。

每个shard的数据都是多个备份的,每个shard都有一个primary shard,负责写入数据。还有几个replica shard。primary shard写入数据之后,会将数据同步到其他几个replica shard上去。

宕机方案

es集群有多个节点。会自动选取其中一个作为master节点。如果非master节点宕机,会由master节点让那个宕机节点上的primary shard的身份转移到其他机器上的replica shard。接着你修复了好了之后,在分配过去。