• 9.简单理解ES分布式


    主要知识点:

       

    1Elasticsearch对复杂分布式机制的透明隐藏特性

    2Elasticsearch的垂直扩容与水平扩容

    3、增减或减少节点时的数据rebalance

    4master节点

    5、节点对等的分布式架构

       

    --------------------------------------------------------------------------------------------------------------------

       

    1Elasticsearch对复杂分布式机制的透明隐藏特性

       

    Elasticsearch是一套分布式的系统,分布式是为了应对大数据量。

    Elasticsearch隐藏了复杂的分布式机制

    1)、分片机制(我们之前随随便便就将一些document插入到es集群中去了,我们有没有care过数据怎么进行分片的,数据到哪个shard中去,es会自动帮我们实现这些功能)

    2)、cluster discovery(集群发现机制,我们之前在做那个集群statusyellowgreen的实验里,直接启动了第二个es进程,那个进程作为一个node自动就发现了集群,并且加入了进去,还接受了部分数据,ES会自动发现集群,并自动为这些新加入的集群分配replica shard,并接收数据保持负载均衡)

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

    4)、shard副本,请求路由,集群扩容,shard重分配等。

       

    --------------------------------------------------------------------------------------------------------------------

       

    2Elasticsearch的垂直扩容与水平扩容

    假设现在有6台服务器,每台服务器1T的容量,如果现在有8T的数据,此时就有两种方案。

    1)、垂直扩容:或者重新购置两台服务器,每台2T,替换掉原来的2台老的服务器。这种方法要采购更强大的服务器, 成本非常高昂,而且会有瓶颈,假设世界上最强大的服务器容量就是10T,但是当你的总数据量达到5000T的时候,你要采购多少台最强大的服务器啊。

    2)、水平扩容:直接再增加两台一T的服务器,放入集群中,这是业界经常采用的方案,采购越来越多的普通服务器,性能比较一般,但是很多普通服务器组织在一起,就能构成强大的计算和存储能力

    成本需求分析

    普通服务器:1T1万,100

    强大服务器:10T50万,500

       

    3)、扩容对应用程序的透明性,应用程序的所有操作均是针对ES集群,而不会关心是否已扩容,所以扩容后对应用程序的使用无影响。

       

    --------------------------------------------------------------------------------------------------------------------

       

    3、增减或减少节点时的数据自动rebalance,这样ES会自动调节各个shard的负载,保持负载均衡

       

    --------------------------------------------------------------------------------------------------------------------

       

    4master节点

    es集群中总会有一个master节点,主要任务是管理元数据:索引创建或删除,维护索引元数据,节点的增加和移出,维护集群的元数据。默认情况下,es集群会自动选出一个节点作为master节点,mater节点不承载所有的请求,不会存在单点瓶颈的情况。主要功能:

    1)创建或删除索引

    2)增加或删除节点

       

    --------------------------------------------------------------------------------------------------------------------

       

    5、节点对等的分布式架构

       

    1)节点对等,每个节点都能接收所有的请求

    2)任何一个节请接收到请求后,都可以自动把这个请求路由到有相关数据的其他节点去处理这个请求。

    3)最原始的收到请求的节点会负责收集其他节点的响应数据,最后把这个数据返回给客户端。

       

    以下是分布式系统的图解

       

  • 相关阅读:
    MySQL中遍历查询结果的常用API(c)
    MySQL :LAST_INSERT_ID()函数总结
    安装Mysql时提示尚未安装Python 解决方案
    pthread_cond_broadcast & pthread_cond_signal
    vs 搭配 Linux 开发
    不同宿主的iterator不能进行比较
    error C2338: No Q_OBJECT in the class with the signal (NodeCreator.cpp)
    c++ 中全局/静态存储区的内存污染问题
    TCP与UDP各自优缺点与区别
    简单理解进程与线程
  • 原文地址:https://www.cnblogs.com/liuqianli/p/8434091.html
Copyright © 2020-2023  润新知