【ElasticSearch教程】--- Elasticsearch 系统架构(二十三)

这篇具有很好参考价值的文章主要介绍了【ElasticSearch教程】--- Elasticsearch 系统架构(二十三)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

系统架构

【ElasticSearch教程】--- Elasticsearch 系统架构(二十三)

概念

一个运行中的Elasticsearch实例称为一个节点,而一个Elasticsearch集群中包含一个或者多个拥有相同cluster.name配置的节点组成, 它们共同承担数据和负载的压力。当有节点加入集群中或者从集群中移除节点时,集群将会重新平均分布所有的数据。

当一个节点被选举成为主节点时, 它将负责管理:集群范围内的所有变更,例如增加、删除索引,或者增加、删除节点等。而主节点并不需要涉及到文档级别的变更和搜索等操作,所以当集群只拥有一个主节点的情况下,即使流量的增加它也不会成为瓶颈。 当主节点宕机后,副节点中的其中一个会成为主节点。

作为用户,我们可以将请求发送到集群中的任何节点 ,包括主节点。 每个节点都知道任意文档所处的位置,并且能够将我们的请求转发到存储我们所需文档的节点。 无论我们将请求发送到哪个节点,它都能负责从各个包含我们所需文档的节点收集回数据,并将最终结果返回给客户端。

分片与副本

索引数据存储在集群中时,可以设置分片数和副本数。P0,P1,P2是分片,而R0,R1,R2表示副本。但是分片对应的副本不能在同一个节点上,例如P0R0不会在同一个节点上。每一个分片里面的东西就是一个底层Lucence的索引,Lucence是一个全文检索引擎,所以每一个节点都是一个全文检索引擎,那访问任何一个节点都能搜索出数据,如果是查询Lucence会把满足条件的多个引擎的结果合并在一起。

单节点集群

在一个空节点的集群内创建名为orders的索引, 为了后续的演示,创建时分配3个主分片和一个副本(每个主分片拥有一个副本分片)。
【ElasticSearch教程】--- Elasticsearch 系统架构(二十三)
请求url:http://127.0.0.1:9201/orders,
请求body:

{
    "settings":{
        "number_of_shards":3,
        "number_of_replicas":1
    }
}

响应内容:

{
    "acknowledged": true,
    "shards_acknowledged": true,
    "index": "orders"
}

即创建了一个索引orders, 一共3个分片, 每个分片1个副本,那就会构成6个分片数据。
由于集群是一个拥有一个索引的单节点集群。所以所有3个主分片都会被分配在node-9201当中。
接下来可以使用elasticsearch head插件来进行查看,插件是使用可以查看文章https://blog.csdn.net/zenglingmin8/article/details/117488783。
查看node-9201节点的状态:
【ElasticSearch教程】--- Elasticsearch 系统架构(二十三)
可以从单集群看出,健康值为yellow。因为有三个副本没办法创建出来。3个主分片都存在了node-9201节点上。
集权健康值:yellow(3 of 6):表示当前集群的全部主分片都正常运行,但是副本分片没有全部处在正常状态。
【ElasticSearch教程】--- Elasticsearch 系统架构(二十三)
上图表示3个主分片正常。

【ElasticSearch教程】--- Elasticsearch 系统架构(二十三)
上图表示3个副本分片都是Unassigned — 它们都没有被分配到任何节点。在同一个节点上既保存原始数据又保存副本是没有意义的。因为一旦失去了那个节点,我们也将失去该节点上所有副本数据。
当前集群是正常运行的,但是在硬件故障时有丢失数据的风险。

故障转移

当集群中只有一个节点在运行时,意味着会有一个单点故障问题----么有冗余。幸运的是,只需要启动一个节点即可防止数据丢失,启动第二个节点时,只要它和第一个节点有同样的cluster.name配置,它就会自动发现集群并加入到其中。(如果新节点在不同的机器上时需要配置单播主机列表)。
如果启动了第二个节点,集群会拥有两个节点的集群:所有主分片和副本分片都会被分配。
【ElasticSearch教程】--- Elasticsearch 系统架构(二十三)
在我们启动了node-9202之后再查看elasticsearch head可以看到9202已经分配到了副本。 集群的状态也变为了 集群健康值: green (6 of 6) 绿色。

水平扩容

怎样为我们正在增长中的应用程序按需扩容,当启动第三个节点, 我们的集群将会拥有三个节点的集群:为了分散负载而对分片进行重新分配。
【ElasticSearch教程】--- Elasticsearch 系统架构(二十三)
node-9203启动之后节点自动将副本、分片进行了重新调整。加粗的为主分片。
分片原则:

  1. 主分片和副本不能在同一节点
  2. 分配尽量的均匀。

如果想扩容多余6个节点怎么办?

朱分片的数据在索引创建时就已经确定下来,实际上,这个数目定义这个索引能够存储的最大数据量。(实际大小取决于你的数据、硬件和使用场景。)但是,读操作— 搜索和返回数据 — 可以同时被主分片或副本分片所处理, 所以当你拥有越多的副本分片时, 也将拥有越高的吞吐量。
在运行中的集群上可以调整副本分片数目, 我们可以按需伸缩集群。让我们把副本数增加,使得最终的分片数(主分片+副本)超过节点数。文章来源地址https://www.toymoban.com/news/detail-467431.html

到了这里,关于【ElasticSearch教程】--- Elasticsearch 系统架构(二十三)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 鸿蒙开发系列教程(二十三)--List 列表操作(2)

    在列表项之间添加间距,可以使用space参数,主轴方向 List({ space: 10 }) { … } 分隔线用来将界面元素隔开,使单个元素更加容易识别。 startMargin和endMargin属性分别用于设置分隔线距离列表侧边起始端的距离和距离列表侧边结束端的距离 List() { … } .divider({ strokeWidth: 1, startMargi

    2024年02月19日
    浏览(74)
  • Elasticsearch之文本搜索(十三)

            ES作为一款搜索引擎框架,文本搜索是其核心功能。ES在文本索引的建立和搜索过程中依赖两大组件,即Lucene和分析器。其中,Lucene负责进行倒排索引的物理构建,分析器负责在建立倒排索引前和搜索前对文本进行分词和语法处理。         为了完成对文本的快

    2024年02月07日
    浏览(34)
  • Elasticsearch - EQL;SQL(十三)

    EQL 的全名是 Event Query Language (EQL)。 事件查询语言(EQL) 是一种用于基于事件的时间序列数据(例如日志,指标和跟踪)的查询语言。EQL 在 Elastic Security 中被广泛使用。在 Elastic Security 平台上,当输入有效的 EQL 时,查询会在数据节点上编译,执行查询并返回结果。这一切

    2024年02月16日
    浏览(34)
  • linux系统安装elasticsearch教程

    1、下载安装 下载elasticsearch,地址下载中心 - Elastic 中文社区,kibana也可以在这里下载 官网下载地址:Download Elasticsearch | Elastic 创建一个文件夹,上传到服务器,/home/aitpm/software_elasticsearch   解压到当前目录 tar -xvf  elasticsearch-7.9.3-linux-x86_64.tar.gz 2、更改文件夹所属者 因为

    2024年02月05日
    浏览(33)
  • ElasticSearch第二十讲 Elasticsearch的优势和应用场景

    Elasticsearch 是一个开源的分布式搜索和分析引擎,构建在 Apache Lucene 基础之上。它提供了一个快速、可扩展和具有强大查询功能的分布式搜索解决方案。Elasticsearch 被广泛应用于各种场景,包括企业搜索、日志和事件数据分析、电商商品搜索和推荐等。 Elasticsearch 的核心概念是

    2024年02月09日
    浏览(52)
  • 操作系统原理 —— 文件的逻辑结构(二十三)

    这里说的 逻辑结构 ,就是指在用户看来,文件内部的数据应该是如何组织起来的,而 物理结构 指的是在操作系统看来,文件的数据是如何被存放的。 从 逻辑结构 结构来看,我们可以打开一个记事本,里面的文字内容从用户的角度来看就是无结构的,但是又从 Excel 来看,

    2024年02月08日
    浏览(62)
  • 【java_wxid项目】【第十三章】【Elasticsearch集成】

    主项目链接:https://gitee.com/java_wxid/java_wxid 项目架构及博文总结: 点击:【使用Spring Boot快速构建应用】 点击:【使用Spring Cloud Open Feign基于动态代理动态构造请求实现与其他系统进行交互】 点击:【使用Spring Cloud Hystrix实现服务容错、熔断、降级、监控】 点击:【使用Spr

    2023年04月09日
    浏览(39)
  • linux系统安装elasticsearch教程_linux 安装es

    下载elasticsearch,地址下载中心 - Elastic 中文社区,kibana也可以在这里下载 官网下载地址:Download Elasticsearch | Elastic 创建一个文件夹,上传到服务器,/home/aitpm/software_elasticsearch 解压到当前目录 tar -xvf  elasticsearch-7.9.3-linux-x86_64.tar.gz 2、更改文件夹所属者 因为elasticsearch  不能使

    2024年04月15日
    浏览(41)
  • linux系统安装elasticsearch教程_linux 安装es(1)

    2、更改文件夹所属者 因为elasticsearch  不能使用root用户启动,需要用普通用户启动,如果本来就用普通用户登录,可不用更改 ,命令 chown -R aitpm:aitpm elasticsearch-7.9.3 查看目录结构 3、修改elasticsearch.yml文件,修改一些核心配置,vi   /home/aitpm/software_elasticsearch/elasticsearch-7.9.3/c

    2024年04月12日
    浏览(33)
  • SpringCloud学习笔记(十三)_Zipkin使用SpringCloud Stream以及Elasticsearch

    在前面的文章中,我们已经成功的使用Zipkin收集了项目的调用链日志。但是呢,由于我们收集链路信息时采用的是http请求方式收集的,而且链路信息没有进行保存,ZipkinServer一旦重启后就会所有信息都会消失了。基于性能的考虑,我们可以对它进行改造,使用SpringCloud Strea

    2024年02月04日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包