ElasticSearch分布式架构原理

 一个ES集群中有多个Server节点,每个Server节点中含有多个Index。

主节点(Master)

        主资格节点的主要职责是和集群操作相关的内容,如创建或删除索引,跟踪哪些节点是集群的一部分,并决定哪些分片分配给相关的节点。稳定的主节点对集群的健康是非常重要的,默认情况下任何一个集群中的节点都有可能被选为主节点,索引数据和搜索查询等操作会占用大量的cpu,内存,io资源,为了确保一个集群的稳定,分离主节点和数据节点是一个比较好的选择。 

数据节点(Server) 

        数据节点主要是存储索引数据的节点,主要对文档进行增删改查操作,聚合操作等。数据节点对cpu,内存,io要求较高, 在优化的时候需要监控数据节点的状态,当资源不够的时候,需要在集群中添加新的节点(可横向拓展)。

节点对等

        每个节点都能接受请求每个节点接收到请求后能把该请求路由到相关数据的其它节点上, 接受原始请求的节点负责采集数据并返回给客户端。

Index(索引)

        在ES中的index,可以理解为是一份数据的标识,类似于在hive中一份数据要通过一个表名来标识。

一个Index含有多个分片(shard),其中有一个 primary 主分片,负责写入,其他副本为 replica,不能写,只能同步 primary 的数据,但可以处理读请求

分片机制

        将文本数据切割成n个小文本存储在不同的节点, 减少大文件存储在单个节点上对设备带来的压力。

分片控制(路由计算)

        当索引一个文档时,我们要确定这个文档存到那个分片中,当创建一个文档的时候,也要确定这个文档应该存到那个分片中。这个确定的方法我们是通过一个公式(路由计算)来确定的:

shard = hash(routing) % number_of_primary_shards

        routing 是一个可变值,默认是文档的 _id ,也可以设置成一个自定义的值。 routing 通过hash 函数生成一个数字,然后这个数字再除以 number_of_primary_shards (主分片的数量)后得到余数 。这个分布在 0 到 number_of_primary_shards-1 之间的余数,就是我们所寻求的文档所在分片的位置

分片的副本

        在集群中某个节点宕机后,通过副本可以快速对缺失数据进行复盘

分片的负载均衡

        例如现在有10个分片(shard),集群中有三个节点, ES会进行均衡分配,以保持整体请求的负载均衡。增加或减少节点时会自动负载均衡(rebalance

 ES的底层是Lucene引擎,ES的每一个分片对应到底层实际上就是一个 Lucene Index包含多个 segment 文件,和一个 commit point 文件

segment

        segment 文件存储的就是一个个的 Document,是负责真正存储数据的。

commit point

        commit point 相当于一个索引文件,记录了都有哪些 segment 文件。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
架构解密,从分布式到微服务高清带书签版本,了解分布式系统的研发流程以及所用到的中间件,学习分布式系统到微服务架构的演化过程。 历时三年终到稿,还未读完初稿,就知道《架构解密:从分布式到微服务》将是一本畅销书。   从传统分布式架构迁移到基于容器技术的微服务架构,这本就是百谈不厌的话题。   更别提内容涉及Microservices、Kubernetes、SOA、Distribute Memory、ElasticSearch、Kafka、CAP、NUMA、SOA、GlusterFS、Actor、Akka、RabbitMQ、Spring Cloud、ZeroC Ice……   Leader-us的文字还是那样充满IT情怀和抱负,也一如既往地流畅和通俗易懂。   一个很复杂的问题,经过Leader-us一个调侃就变得简单化。   一个看似很简单的问题,Leader-us却总能深入到幕后,包括独有的数据和原理讲解,一手的资料啊有木有,世上难买啊有木有,很珍贵啊有木有!   Leader-us调侃道:“《架构解密:从分布式到微服务》是一本代码级吹水架构师读物,从此360°无死角吹水,绝地反击,打败纯吹水派架构师”,让我们拭目以待。 分布式架构与微服务平台是当今IT界的关键技术,也是资深软件工程师和系统架构师必须掌握的核心技术。《架构解密:从分布式到微服务》以从传统分布式架构迁移到基于容器技术的微服务架构为主线,全面、透彻地介绍了与分布式架构及微服务相关的知识和技术。《架构解密:从分布式到微服务》一开始并没有提及分布式的枯燥理论,而是讲述了一段精彩的IT发展史,其中重点讲述了大型机、UNIX小机器的没落与X86平台的崛起,从而巧妙地引出CPU、内存、网络、存储的分布式演进过程,这恰恰是分布式软件系统赖以运行的“物质基础”。然后简明扼要地介绍了进行系统架构所必需的网络基础,并详细介绍了分布式系统中的经典理论、设计套路及RPC通信,对内存、SOA架构分布式存储、分布式计算等进行了深度解析,后详细介绍了全文检索与消息队列中间件,以及微服务架构所涉及的重点内容。   《架构解密:从分布式到微服务》是Leader-us多年架构经验的倾情分享,主要面向关注分布式架构及微服务,以及有志于成为实力派架构师的IT人士。 Leader-us,本名吴治辉,惠普资深软件架构师,国内知名开源分布式数据库中间件 Mycat的发起人,精通Java编程,拥有过16年软件研发经验,专注于电信和云计算方面的软件研发,参与过众多分布式与云计算相关的大型项目架构设计和 Coding,是业界少有的具备很强 Coding 能力的 S级资深架构师;曾经选拔和培养了大批Java工程师,他们中的大多数人进入知名软件公司参与核心研发,也有一些人选择创业。   Leader-us 也是《ZeroC Ice 木又威指南》《Kubernetes 木又威指南:从 Docker到 Kubernetes 实践全接触》的作者。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值