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

分佈式系統的可用性與擴展性

  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. 副本,解決數據高可用,分片是主分片的拷貝
    副本數可動態調整
    增加副本數,可在一定程度上提高服務的可用性
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章