天天看點

極客學習——基本概念:索引、文檔、節點、叢集、分片、副本

分布式系統的可用性與擴充性

  1. 高可用性

    服務可用性:允許有節點停止服務

    資料可用性:部分節點丢失,不會丢失資料

  2. 可擴充性

    請求量/資料的不斷增長時,可将資料分布到其他節點上

Elasticsearch分布式架構

1.優點:

可對存儲水準擴容

提高系統可用性、部分節點停止服務,整個叢集服務不受影響

2. 分布式架構

不同叢集通過叢集名來進行區分

一個叢集可有一個及一個以上的節點

文檔(Document)

  1. elasticsearch 是面向文檔的,文檔是所有可搜尋資料的最小機關
  2. 文檔會被序列化為JSON格式,儲存在elasticsearch中
  3. 每個文檔都有一個Unique ID,【可自己指定或通過es自動生成】

文檔的中繼資料

中繼資料:用于标注文檔的相關資訊

極客學習——基本概念:索引、文檔、節點、叢集、分片、副本
  1. _index :文檔所屬的索引名
  2. _type:文檔所屬的類型名
  3. _id:文檔唯一ID
  4. _source:文檔的原始JSON資料
  5. _version:文檔的版本資訊 【當有大量資料并發讀寫時,版本資訊可以解決讀寫沖突問題】
  6. _score:相關性打分

索引

  1. index ——索引 是文檔的容器,是一類文檔的結合

    index展現了邏輯空間概念:每個索引都有自己的Mapping定義,用于定義包含的文檔的字段名和字段類型

    shard展現了實體空間的概念:索引中的資料分散在shard上

  2. 索引的mapping與settings

    mapping 定義文檔字段的類型

    setting定義不同的資料分布

節點

  1. 節點是一個es的執行個體

    本質是一個JAVA程序

    一個機器可運作多個es進行,建議一個機器隻運作一個

  2. 每個節點都有名字
  3. 每個節點啟動後,會配置設定一個UID,儲存在data目錄

Master-eligible nodes

  1. 每個節點啟動後,預設是一個master-eligible節點【可設定禁止】
  2. master-eligible節點可參加選主流程,成為master節點
  3. 第一個節點啟動,會自己選舉為master節點
  4. 每個節點都儲存了叢集狀态,隻有master節點可修改叢集的狀态資訊

    叢集狀态資訊,維護了【所有的節點資訊、所有的索引及其相關的mapping和setting的資訊、分片的路由資訊】

data node

可以儲存資料的節點,負責儲存分片資料

coordinating node

負責接收client請求,将請求分發到合适的績點,最終将結果彙總傳回client

每個節點預設起到了coordinating node的職責

分片

  1. 主分片,解決資料水準擴充,可将資料分布到叢集内所有節點上

    一個分片是一個運作的lucene的執行個體

    主分片數索引建立時指定,不許修改,除非Reindex

  2. 副本,解決資料高可用,分片是主分片的拷貝

    副本數可動态調整

    增加副本數,可在一定程度上提高服務的可用性

繼續閱讀