Elasticsearch分布式系统架构设计.docx

Elasticsearch分布式系统架构设计.docx

ID:62496176

大小:226.83 KB

页数:18页

时间:2021-05-10

Elasticsearch分布式系统架构设计.docx_第1页
Elasticsearch分布式系统架构设计.docx_第2页
Elasticsearch分布式系统架构设计.docx_第3页
Elasticsearch分布式系统架构设计.docx_第4页
Elasticsearch分布式系统架构设计.docx_第5页
资源描述:

《Elasticsearch分布式系统架构设计.docx》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、勻胡学■巴i勻胡学■巴Elasticsearch分布式系统架构设计i(Si1鶴学吧分布式系统类型多,涉及面非常广,不同类型的系统有不同的特点,批量计算和实时计算就差别非常大。这篇文章中,重点会讨论下分布式数据系统的设计,比如分布式存储系统,分布式搜索系统,分布式分析系统等。分布式系统类型多,涉及面非常广,不同类型的系统有不同的特点,批量计算和实时计算就差别非常大。这篇文章中,重点会讨论下分布式数据系统的设计,比如分布式存储系统,分布式搜索系统,分布式分析系统等。我们先来简单看下Elasticsearc

2、h的架构。Elasticsearch集群架构Elasticsearch是一个非常著名的开源搜索和分析系统,目前被广泛应用于互联网多种领域中,尤其是以下三个领域特别突出。一是搜索领域,相对于solr,真正的后起之秀,成为很多搜索系统的不二之选。二是Json文档数据库,相对于MongoDB,读写性能更佳,而且支持更丰富的地理位置查询以及数字、文本的混合查询等。三是时序数据分析处理,目前是日志处理、监控数据的存储、分析和可视化方面做得非常好,可以说是该领域的引领者了。Elasticsearch的详细介绍可以

3、到官网查看。我们先来看一下Elasticsearch中几个关键概念:节点(Node):物理概念,一个运行的Elasticearch实例,一般是一台机器上的一个进程。tsi:鹄学吧3索引(Index),逻辑概念,包括配置信息mapping和倒排正排数据文件,一个索引的数据文件可能会分布于一台机器,也有可能分布于多台机器。索引的另外一层意思是倒排索引文件。分片(Shard):为了支持更大量的数据,索引一般会按某个维度分成多个部分,每个部分就是一个分片,分片被节点(Node)管理。一个节点(Node)一般会

4、管理多个分片,这些分片可能是属于同一份索引,也有可能属于不同索引,但是为了可靠性和可用性,同一个索引的分片尽量会分布在不同节点(Node)上。分片有两种,主分片和副本分片。副本(Replica):同一个分片(Shard)的备份数据,一个分片可能会有0个或多个副本,这些副本中的数据保证强一致或最终一致。用图形表示出来可能是这样子的:3m鸽学吧Q!ISNodelEDR2Node3Index1Index25m鸽学吧5m鸽学吧Index1:蓝色部分,有3个shard,分别是P1,P2,P3,位于3个不同的No

5、de中,这里没有Replica。Index2:绿色部分,有2个shard,分别是P1,P2,位于2个不同的Node中。并且每个shard有一个replica,分别是R1和R2。基于系统可用性的考虑,同一个shard的primary和replica不能位于同一个Node中。这里Shard1的P1和R1分别位于Node3和Node2中,如果某一刻Node2发生宕机,服务基本不会受影响,因为还有一个P1和R2都还是可用的。因为是主备架构,当主分片发生故障时,需要切换,这时候需要选举一个副本作为新主,这里除了

6、会耗费一点点时间外,也会有丢失数据的风险。Index流程5m鸽学吧建索引(Index)的时候,一个Doc先是经过路由规则定位到主Shard,发送这个doc到主Shard上建索引,成功后再发送这个Doc到这个Shard的副本上建索引,等副本上建索引成功后才返回成功。在这种架构中,索引数据全部位于Shard中,主Shard和副本Shard各存储一份。当某个副本Shard或者主Shard丢失(比如机器宕机,网络中断等)时,需要将丢失的Shard在其他Node中恢复回来,这时候就需要从其他副本(Replica

7、)全量拷贝这个Shard的所有数据到新Node上构造新Shard。这个拷贝过程需要一段时间,这段时间内只能由剩余主副本来承载流量,在恢复完成之前,整个系统会处于一个比较危险的状态,直到failover结束。这里就体现了副本(Replica)存在的一个理由,避免数据丢失,提高数据可靠性。副本(Replica)存在的另一个理由是读请求量很大的时候,一个Node无法承载所有流量,这个时候就需要一个副本来分流查询压力,目的就是扩展查询能力。角色部署方式5m鸽学吧接下来再看看角色分工的两种不同方式:5!鸽学吧谐

8、求结果Index1Index2t[路由淸求站卑rodibtable结果Node1Node2Node1Node27!鸽学吧(TransportNode)(TransportWode)7!鸽学吧7!鸽学吧Elasticsearch支持上述两种方式:混合部署(左图):1.默认方式7(Si1鶴学吧2.不考虑MasterNode的情况下,还有两种Node,DataNode和TransportNode,这种部署模式下,这两种不同类型Node角色都位于同一个Node中

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。