elastic教程5之底层原理

本文详细介绍了Elasticsearch的系统架构,包括分片(shards)和副本(replicas)的概念,以及如何在单节点和多节点集群中进行设置和扩展。在多节点集群中,通过添加节点实现水平扩容,确保数据的高可用性和性能提升。同时,文章还讨论了数据写入和查询流程,并解释了路由计算和分片控制的重要性。在应对故障时,Elasticsearch能自动调整以保持服务连续性。
摘要由CSDN通过智能技术生成

基本概念

  • 万物皆索引
    在这里插入图片描述

  • shards: 分片,类似分表

    • 允许水平分割 / 扩展你的内容容量。
    • 允许在分片之上进行分布式的、并行的操作,进而提高性能/吞吐量
  • replicas: 副本,拓展分片失败下的高可用性

  • 分配:主从服务器分配

系统架构

在这里插入图片描述

  • 副本和本体不能放在一个node上

分布式集群

单节点集群

#PUT http://127.0.0.1:1001/users
{
    "settings" : {
        "number_of_shards" : 3,
        "number_of_replicas" : 1
    }
}

  • 3个分片,每个分片一个副本
  • elasticsearch-head 插件(Chrome插件)查看集群情况
    在这里插入图片描述
  • 集群健康值:yellow( 3 of 6 ):表示主分片正常运行,但是副本分片没有正常运行(因为本体和副本在同一个节点,无法在节点down时保证高可用性)

多节点集群

  • 加入新的节点,绿色则两个分片运行正常
  • 星号表示master
  • 加粗边框表示主分片,细边框为replicas在这里插入图片描述

水平扩容

  • 加入第三个节点

  • 自动均衡
    在这里插入图片描述

  • 主分片的数目在索引创建时已确定,这个数目定义了索引能够存的最大数据量

  • 改变replicas的设置

#PUT http://127.0.0.1:1001/users/_settings

{
    "number_of_replicas" : 2
}

  • users 索引现在拥有 9 个分片: 3 个主分片和 6 个副本分片。 这意味着我们可以将集群
    扩容到 9 个节点,每个节点上一个分片。相比原来 3 个节点时,集群搜索性能可以提升3 倍

应对故障

  • 关闭第一个节点,则
    在这里插入图片描述
  • 不影响服务的正常运行
  • 恢复第一个节点
    在这里插入图片描述
  • 只是master切换了,恢复往初

路由计算&分片控制

在这里插入图片描述

  • 放置规则影响查询规则

在这里插入图片描述

  • 分片控制:可以发送请求到集群中的任一节点。每个节点都有能力处理任意请求。每个节点都知道集群中任一文档位置
  • 当发送请求的时候, 为了扩展负载,更好的做法是轮询集群中所有的节点

数据写流程

在这里插入图片描述

  • 在客户端收到成功响应时,文档变更已经在主分片和所有副本分片执行完成,变更是安全的。有一些可选的请求参数允许您影响这个过程,可能以数据安全为代价提升性能。这些选项很少使用
  • consistency 参数的值可以设为:
    • one :只要主分片状态 ok 就允许执行写操作。
    • all:必须要主分片和所有副本分片的状态没问题才允许执行写操作。
    • quorum:默认值为quorum , 即大多数的分片副本状态没问题就允许执行写操作
  • timeout
    - 如果没有足够的副本分片会发生什么?Elasticsearch 会等待,希望更多的分片出现。默认情况下,它最多等待 1 分钟。 如果你需要,你可以使用timeout参数使它更早终止:100是100 毫秒,30s是30秒

数据查流程

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值