Elasticsearch Глубокий (б)

Elasticsearch основы распределенной архитектуры

Elasticsearch прозрачных скрытых свойств сложного распределенного механизма

Elasticsearch является распределенной системой, распределенной в ответ на большое количество данных.

Elasticsearch скрывает сложность распределенных механизмов:

  • Дробление: Прежде чем мы случайно вставлены в документ будет некоторые из кластера эс идти, мы не заботимся о том, как распределены данные, данные, к которым осколок пошел.
  • Кластерный механизм обнаружения (обнаружение кластера): Если начать новый процесс эс, эс, то процесс будет найден как узел кластера и эс, а затем автоматически присоединиться.
  • Балансировка нагрузки осколок: Например, предположим, что есть три узла, в общей сложности 25 осколка назначить до трех узлов, будут равномерно распределены ES автоматически выделяется для обеспечения того, сбалансированная нагрузка запросов на чтение каждого узла
  • осколок дубликат
  • маршрутизация запросов
  • Кластер расширение
  • перераспределение осколок

Горизонтальное и вертикальное расширение расширение Elasticsearch

План расширения:

  6 серверов, каждый трюм 1T данные немедленно увеличить объем данных, которые вы хотите 8Т, на этот раз есть два варианта.

(1) Вертикальное расширение: повторное приобретение двух серверов, мощность каждого сервера является 2T, вместо старых двух серверов, сервер 6 в настоящее время общая мощность составляет 4 * 1Т + 2 * 2T = 8Т.

(2) уровень расширения: новая покупка двух серверов, мощность каждого сервера является 1T, добавляют непосредственно в кластер, чтобы идти, так что теперь общая емкость сервера 8 * 1Т = 8Т

Вертикальное расширение: приобрести более мощный сервер, стоимость очень высока, и будет узким местом, при условии, что самый мощный емкость сервера в мире является 10T, но когда вы достигаете общее время число 5000T, сколько вы хотите купить самый мощный сервер ах.

Горизонтальное расширение: промышленность часто используемые программы, все более и более обычные сервер закупок, производительность более общее, но многие обычные сервера группируются вместе, может представлять собой мощную вычислительную и хранение емкости.

Когда данные увеличивается или уменьшается или уменьшается восстановить баланс узла

Например, в настоящее время существует четыре узла, три из которых узел имеет осколок, 1 Ge узел имеет два осколка, но на этот раз, если есть новый узел добавляется в, Эзотерических автоматически один осколке, присвоенный новодобавленный узел вверх.

главный узел

Es всегда будет иметь узел кластера является главным узлом:

  • управления метаданными кластера Эс: например, создание индекса и удаление, сохранение метаданных индекса; добавлять и удалять узлы, кластеры данных обслуживания
  • По умолчанию, он автоматически выберет узел в качестве главного узла
  • главный узел не выполняет все запросы, это не будет единственной точкой узких мест

Узел распределенной архитектуры равенства

  1. Равноправные узлы, каждый узел может принимать все запросы
  2. Маршрут запрос: Любой узел после получения запроса, запрос может быть автоматически направляются в соответствующем узел до обработки запроса.
  3. Коллекция Ответ: самый примитивный узел в ответ на прием данных от другого узла, а затем возвращает данные клиенту.

первичный осколок и реплика осколок снова расчесывание механизма

  1. Индекс (индекс), включающий в себя множество шардя

     

  2. Каждый осколок является минимальной единицей работы, неся частью данных, например Lucene, полного индекса и способности обрабатывать запросы.

     

  3. Когда изменения в узле, осколок будет автоматически загружать балансирование узлов.

     

  4. первичный осколок и реплика осколок, каждый документ должен существовать только определенный первичный осколок и соответствующие реплики в shrad, не может существовать во множестве первичного осколка.
  5. копия осколок является основной копией осколка, ответственной за отказоустойчивость, нагрузку и иметь запрос на чтение.
  6. Количество первичного осколка в создании индекса фиксируется, а количество реплик осколка может быть изменено в любой момент времени.
  7. Количество первичного осколка по умолчанию равно 5, количество реплик shrad по умолчанию равно 1.
  8. первичный осколок и его реплика осколок не может быть размещен на одном узле (или узел выходит из строя, первичный осколок и реплики осколки отсутствовали, не достигли бы роли отказоустойчивости.), но и другой первичного осколок и копия осколок помещаются на том же узле.

Создать индекс среды одним узлом выглядеть?

  1. среда с одним узлом, создать индекс: Есть три первичных осколок, 3 Ge реплики осколок
    PUT /test_index
    {
       "settings" : {
          "number_of_shards" : 3,
          "number_of_replicas" : 1
       }
    }
  2. 集群状态是yellow
  3. 这个时候,只会将3个primary shard分配到仅有的一个node上去,另外3个replica shard是无法分配的
  4. 集群可以正常工作,但是一旦出现节点宕机,数据全部丢失,而且集群不可用,无法承担任何请求

两个node环境下replica shard是如何分配的? 

 此时的情况,1个node、3个primary shard、3个replica shard

如果此时新增一个node进来,构成了一个由2个node组成的es集群,如下:

并且:

  1. primary shard会自动把数据同步到对应的replica shard上去
  2. 客户端的读请求可以发送到primary shard上去,也可以发送到replica shard上去

Elasticsearch横向扩容

  1. primary shard 和 replica shard自动负载均衡
    目前情况:2个node, 3个primary shard,3个replica shard


    如果此时给es集群增加一个节点(node),es会自动对primary shard和replica shard进行负载均衡
  2. 每个Node有更少的shard, IO/CPU/Memory资源给每个shard分配更多,每个shard性能更好
  3. 扩容的极限,6个shard(3个primary shard,3个replica shard),最多扩容到6台机器,每个shard可以占用单台服务器的所有资源,性能最好
  4. 超出扩容极限,动态修改replica数量,9个shard(3primary,6 replica),扩容到9台机器,比3台机器时,拥有3倍的读吞吐量
  5. 3台机器下,9个shard(3 primary,6 replica),资源更少,但是容错性更好,最多容纳2台机器宕机,6个shard只能容纳0台机器宕机
  6. 这里的这些知识点,你综合起来看,就是说,一方面告诉你扩容的原理,怎么扩容,怎么提升系统整体吞吐量;另一方面要考虑到系统的容错性,怎么保证提高容错性,让尽可能多的服务器宕机,保证数据不丢失

Elasticsearch容错机制

  1. master选举、replica容错、数据恢复 
    目前es集群情况:3个node,9个shard(3个primary shard,6个replica shard)

    如果此时master node宕机:

    因为Node1节点宕机了,所以primary shard0、replica shard1、replica shard2三个3shard就丢失了。master node宕机的一瞬间,primary shard0这个shard就没有了,此时就不是active status,所以集群的状态为red.

  2. 容错第一步master选举,自动选举另外一个node成为新的master,承担起master的责任来:
  3. 容错第二步新master将丢失的primary shard的某个replica shard提升为primary shard,此时cluster status会变为Yellow,因为所有的primary shard都变成了active status,但是,少了一个replica shard,所以不是所有的replica shard都是active

  4. 容错第三步重启故障的node, new master节点将会把缺失的副本都copy一份到该node上去,而且该node会使用之前已有的shard数据,只是同步一下宕机之后发生的改变。

    此时es cluster的状态为green,因为所有的primary shard和replica shard都是active状态。

 

рекомендация

отwww.cnblogs.com/wyt007/p/11373530.html