从 Elasticsearch 来看分布式系统架构设计

Elasticsearch 集群架构

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

Elasticsearch 的详细介绍可以到官网查看。我们先来看一下 Elasticsearch 中几个关键概念:

我有几张阿里云幸运券分享给你,用券购买或者升级阿里云相应产品会有特惠惊喜哦!把想要买的产品的幸运券都领走吧!快下手,马上就要抢光了。

8481c8f592b7f349aa84a1de5c171db681516edf 节点(Node):物理概念,一个运行的 Elasticearch 实例,一般是一台机器上的一个进程。
8481c8f592b7f349aa84a1de5c171db681516edf 索引(Index),逻辑概念,包括配置信息 mapping 和倒排正排数据文件,一个索引的数据文件可能会分布于一台机器,也有可能分布于多台机器。索引的另外一层意思是倒排索引文件。
8481c8f592b7f349aa84a1de5c171db681516edf 分片(Shard):为了支持更大量的数据,索引一般会按某个维度分成多个部分,每个部分就是一个分片,分片被节点 (Node) 管理。一个节点 (Node) 一般会管理多个分片,这些分片可能是属于同一份索引,也有可能属于不同索引,但是为了可靠性和可用性,同一个索引的分片尽量会分布在不同节点 (Node) 上。分片有两种,主分片和副本分片。
8481c8f592b7f349aa84a1de5c171db681516edf 副本(Replica):同一个分片 (Shard) 的备份数据,一个分片可能会有0个或多个副本,这些副本中的数据保证强一致或最终一致。

用图形表示出来可能是这样子的:

de74c194cd84914ee6998a76d0d12f0f9df0b291

Index 1:蓝色部分,有3个 shard,分别是 P1,P2,P3,位于3个不同的 Node 中,这里没有 Replica。

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

原文链接

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值