八、简述Elasticsearch的分布式架构

作者: 编程界的小学生 | 来源:发表于2017-07-02 19:21 被阅读429次

    1、Elasticsearch对复杂分布式机制的透明隐藏特性
    (1)Elasticsearch是一套分布式的系统,分布式是为了对应大数据量,ES隐藏了复杂的分布式机制,也符合了开箱即用的特点。

    (2)分片机制(我们之前随随便便就将一些document插入到es集群中了,我们并不知道数据是怎么进行分片的,数据到哪个shard中了,这是ES内部帮我们做好的,他隐藏了复杂的实现,我们直接用就好了)

    (3)cluster discovery (集群发现机制,我们之前在做那个集群status从yellow到green的实验里,直接启动了第二个es进程,那个进程作为一个node自动就发现了集群,并加入了进去,还接受了部分数据,replica shard)

    (4)shard负载均衡(举例:假设现在有3个节点,总共有25个shard要分配到3个节点上去,ES会自动进行均匀分配,以保证每个节点的均衡的读写负载请求)

    上述4点如下图:

    Paste_Image.png

    2、Elasticsearch的垂直扩容与水平扩容
    (1)垂直扩容:采购更强大的服务器,成本非常高昂,而且会有瓶颈,假设世界上最强大的服务器容量就是10T,但是当你的总数据量达到5000T的时候,你要采购多少台最强大的服务器?(考虑资金.....)

    (2)水平扩容:业界经常采用的方案,采购越来越多的普通服务器,性能比较一般,但是很多普通服务器组织在一起,就能构成强大的计算和存储能力。(推荐。划算,还不会瓶颈)

    扩容方案
    假设:6台服务器,每台容纳1T数据,马上数据量要增长到8T,这时候两个方案:
    (1)垂直扩容:重新购置两台服务器,每台服务器的容量是2T,替换到老的两台服务器,那么现在是6台服务器的总容量就是4 * 1T + 2 * 2T = 8T

    (2)水平扩容:重新购置两台服务器,每台服务器的容量是1T,直接加入到集群中去,那么现在是8台服务器,总容量就是8 * 1T = 8T。(业界几乎都采取这种方式。)

    3、增加或减少节点时的数据rebalance,保持负载均衡
    什么是数据的rebalance?
    如下两张图说明一切:

    Paste_Image.png Paste_Image.png

    4、master节点
    (1)管理ES集群中的元数据:比如说索引的创建和索引的删除,维护索引元数据;节点的增加和移除,维护集群的元数据。

    (2)默认情况下,会自动选择出一台节点作为master节点。

    注意:master节点不承载所有的请求,所以不会是一个单点瓶颈。(这句话的意思是说并不是因为他是master节点,所以所有请求都由他来转发,而是每个节点都有可能被请求到。)

    5、节点对等的分布式架构
    (1)节点对等,每个节点都能接收所有请求
    (2)自动请求路由
    (3)相应收集
    如下图

    Paste_Image.png

    若有兴趣,欢迎来加入群,【Java初学者学习交流群】:458430385,此群有Java开发人员、UI设计人员和前端工程师。有问必答,共同探讨学习,一起进步!
    欢迎关注我的微信公众号【Java码农社区】,会定时推送各种干货:


    qrcode_for_gh_577b64e73701_258.jpg

    相关文章

      网友评论

        本文标题:八、简述Elasticsearch的分布式架构

        本文链接:https://www.haomeiwen.com/subject/tvcocxtx.html