四、Elasticsearch 基础分布式架构

Elasticsearch 是一套分布式的系统,分布式是为了应对大数据量

Elasticsearch 对复杂分布式机智的透明隐藏特性

  • 分片机制
  • cluster discovery(集群发现机制)
  • shard 负载均衡
  • shard 副本

Elasticsearch 垂直扩容和水平扩容

假设共有6台服务器,每台服务器1T容量。现在数据即将增加到8T,此时有下面量方案:

  • 垂直扩容:重新购置两台服务器,每台服务器的容量是2T,将老的两台服务器进行替换,那么现在的6台服务器的总容量为:4 * 1T + 2 * 2T = 8T。采购更强大的服务器,成本非常高昂,而且会有瓶颈
  • 水平扩容【推荐】:新购置两台服务器,每台服务器的容量是1T,直接加入到集群中,那么现在的服务器总容量为:8 * 1T = 8T。

增加或减少节点时数据会rebalance

es 会自动分配 shard,让服务器承受的压力和请求尽可能的均匀

master 节点

  1. 管理es集群的元数据
  • 索引的创建和删除,维护索引的元数据
  • 节点的增加和移除,管理集群的元数据
  1. 默认情况下,会自动选取一台节点,作为master节点

节点平等的分布式架构

  1. 节点对等:每个节点都能接收所有的请求
  2. 自动请求路由
  3. 相应收集

shard&replica机制总结

  1. index 包含多个 shard
  2. 每个shard都是一个最小工作单元,承载部分数据,每个shard底层都是一个lucene实例,有完整的建立索引和处理请求的能力
  3. 增减节点时,shard会自动在nodes中负载均衡
  4. primary shardreplica shard ,每个document肯定只存在于某一个primary shard 以及其对应的replica shard 中,不可能存在于多个 primary shard
  5. replica shardprimary shard 的副本,负责容错以及承担读请求负载
  6. primary shard 的数量在创建索引的时候就固定了,replica shard 的数量可以随时修改
  7. primary shard 的默认数量是5,replica 的默认数量是1,默认有10个shard,其中5个primary shard ,5个replica shard
  8. primary shard 不能和自己的replica shard 放在同一个节点上(否则节点宕机,primary shardreplica shard 数据都丢失了,起不到容错的作用),但是可以和其他 primary shardreplica shard 放在同一个节点上
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章