【Elastic Search权威指南 读书小记2】ES之分布式集群

网易云笔记地址:https://note.youdao.com/ynoteshare1/index.html?id=eccd97647a00e000f03069f050528d84&type=note

从我的角度来看,ES相对于mongo这种传统nosql来说,最大优点是全文搜索和扩展性了。因为mongo的性能实在也不咋地,分表之后造成的处理统计麻烦比之mysql更让人头大。而分布式可扩展的ES可以让使用者没有后顾之忧,确实感觉不错。

 

一个节点(node)就是一个Elasticsearch实例,而一个集群(cluster)由一个或多个节点组成,

它们具有相同的 cluster.name ,它们协同工作,分享数据和负载。当加入新的节点或者删除

一个节点时,集群就会感知到并平衡数据。

集群中一个节点会被选举为主节点(master),它将临时管理集群级别的一些变更,例如新建或

删除索引、增加或移除节点等。主节点不参与文档级别的变更或搜索,这意味着在流量增长

的时候,该主节点不会成为集群的瓶颈。任何节点都可以成为主节点。我们例子中的集群只

有一个节点,所以它会充当主节点的角色。

做为用户,我们能够与集群中的任何节点通信,包括主节点。每一个节点都知道文档存在于

哪个节点上,它们可以转发请求到相应的节点上。我们访问的节点负责收集各节点返回的数

据,最后一起返回给客户端。这一切都由Elasticsearch处理。

从介绍看来,有点redis的集群的意思。

 

集群健康

在Elasticsearch集群中可以监控统计很多信息,但是只有一个是最重要的:集群健康(cluster

health)。集群健康有三种状态: green (所有主要分片和复制分片都可用)、 yellow (所有主要分片可用,但不是所有复制分片都可用) 或 red (不是所有的主要分片都可用) 。

GET /_cluster/health

 

添加索引

一个分片(shard)是一个最小级别“工作单元(worker unit)”,它只是保存了索引中所有数据的一

部分。分片是Elasticsearch在集群中分发数据的关键。把分片想象成数据的容器。文档存储在分片

中,然后分片分配到你集群中的节点上。当你的集群扩容或缩小,Elasticsearch将会自动在

你的节点间迁移分片,以使集群保持平衡。

分片可以是主分片(primary shard)或者是复制分片(replica shard)。你索引中的每个文档属

于一个单独的主分片,所以主分片的数量决定了索引最多能存储多少数据。

复制分片只是主分片的一个副本,它可以防止硬件故障导致的数据丢失,同时可以提供读请

求,比如搜索或者从别的shard取回文档。

当索引创建完成的时候,主分片的数量就固定了,但是复制分片的数量可以随时调整。

这是三个节点的示例图

增加故障转移

启动第二个节点,配置3个复制分片

横向扩展

随着应用需求的增长,我们该如何扩展?如果我们启动第三个节点,我们的集群会重新组织

自己。均匀分配,为每个分片平均性能

继续扩展

通过修改复制分片数量来扩展分片

PUT /blogs/_settings
{
"number_of_replicas" : 2
}

 

从图中可以看出, blogs 索引现在有9个分片:3个主分片和6个复制分片。这意味着我们能够

扩展到9个节点,再次变成每个节点一个分片。这样使我们的搜索性能相比原始的三节点集群

增加三倍。

当然,在同样数量的节点上增加更多的复制分片并不能提高性能,因为这样做的话平均

每个分片的所占有的硬件资源就减少了(译者注:大部分请求都聚集到了分片少的节

点,导致一个节点吞吐量太大,反而降低性能),你需要增加硬件来提高吞吐量。

不过这些额外的复制节点使我们有更多的冗余:通过以上对节点的设置,我们能够承受

两个节点故障而不丢失数据。

继续扩展增加了冗余,但是降低性能。不过因为增加了分片,也有了增加硬件节点的前提。

 

应对故障

当node1主节点挂掉,会推举出一个活着的节点为主节点(此处选举规则不明,猜测和redis集群类似)。同事,复制分片升级为主分片

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值