## 可擴展性和彈性:集群,節點和碎片
Elasticsearch旨在始終可用并根據您的需求擴展。它是通過自然分布來實現的。您可以將服務器(節點)添加到集群以增加容量,Elasticsearch會自動在所有可用節點之間分配數據和查詢負載。無需大修您的應用程序,Elasticsearch知道如何平衡多節點集群以提供擴展性和高可用性。節點越多,越好。
這是如何運作的?在幕后,Elasticsearch索引實際上只是一個或多個物理碎片的邏輯分組,其中每個碎片實際上是一個獨立的索引。通過將文檔分布在多個分片中的索引中,然后將這些分片分布在多個節點中,Elasticsearch可以確保冗余,這既可以防止硬件故障,又可以在將節點添加到集群中時提高查詢能力。隨著集群的增長(或收縮),Elasticsearch會自動遷移碎片以重新平衡集群。
分片有兩種類型:主數據庫和副本數據庫。索引中的每個文檔都屬于一個主分片。副本分片是主分片的副本。副本可提供數據的冗余副本,以防止硬件故障并提高處理讀取請求(例如搜索或檢索文檔)的能力。
創建索引時,索引中主碎片的數量是固定的,但是副本碎片的數量可以隨時更改,而不會中斷索引或查詢操作。
### 這取決于... ...
在分片大小和為索引配置的主分片數量方面,存在許多性能方面的考慮和權衡取舍。碎片越多,維護這些索引的開銷就越大。分片大小越大,當Elasticsearch需要重新平衡集群時,移動分片所需的時間就越長。
查詢很多小的分片會使每個分片的處理速度更快,但是更多的查詢意味著更多的開銷,因此查詢較小數量的大分片可能會更快。簡而言之...要視情況而定。
作為起點:
* 旨在將平均分片大小保持在幾GB到幾十GB之間。對于具有基于時間的數據的用例,通常會看到20GB到40GB范圍內的碎片。
* 避免龐大的碎片問題。節點可以容納的分片數量與可用堆空間成比例。通常,每GB堆空間中的分片數量應少于20。
確定用例最佳配置的最佳方法是通過[使用自己的數據和查詢](https://www.elastic.co/elasticon/conf/2016/sf/quantitative-cluster-sizing)進行[測試](https://www.elastic.co/elasticon/conf/2016/sf/quantitative-cluster-sizing)。
### 在災難的情況下
出于性能原因,群集內的節點必須位于同一網絡上。跨不同數據中心中的節點的群集中的碎片平衡太簡單了。但是高可用性架構要求您避免將所有雞蛋都放在一個籃子里。如果一個位置發生重大故障,則另一個位置的服務器需要能夠接管。無縫地。答案?跨集群復制(CCR)。
CCR提供了一種方法,可以自動將索引從主群集同步到可以用作熱備份的輔助遠程群集。如果主群集出現故障,則輔助群集可以接管。您還可以使用CCR創建輔助群集,以接近地理位置的方式向您的用戶提供讀取請求。
跨集群復制是主動-被動的。主群集上的索引是活動的領導者索引,并處理所有寫請求。復制到輔助群集的索引是只讀關注者。
### 照顧和喂養
與任何企業系統一樣,您需要工具來保護,管理和監視Elasticsearch集群。集成到Elasticsearch中的安全性,監視和管理功能使您可以將[Kibana](https://www.elastic.co/guide/en/kibana/7.6/introduction.html)用作控制中心來管理集群。類似的特征[數據匯總](https://www.elastic.co/guide/en/elasticsearch/reference/current/rollup-overview.html "匯總概述")和[指標生命周期管理](https://www.elastic.co/guide/en/elasticsearch/reference/current/index-lifecycle-management.html "管理索引生命周期")可幫助您明智隨著時間的推移管理您的數據。
- Elasticsearch簡介
- 數據輸入:文檔和索引
- 信息輸出:搜索和分析
- 可擴展性和彈性
- Elasticsearch入門
- 啟動并運行Elasticsearch
- 索引文件
- 開始搜索
- 使用匯總分析結果
- 從這里開始
- 設置Elasticsearch
- 安裝Elasticsearch
- 從Linux或MacOS上的存檔安裝Elasticsearch
- 在Windows上安裝Elasticsearch
- 使用Debian軟件包安裝Elasticsearch
- 使用RPM安裝Elasticsearch
- 使用Windows MSI安裝程序安裝Elasticsearch
- 使用Docker安裝Elasticsearch
- 使用Homebrew在macOS上安裝Elasticsearch
- 配置Elasticsearch
- 設置JVM選項
- 安全設定
- 記錄配置
- 審核設置
- 跨集群復制設置
- 轉換設定
- 索引生命周期管理設置
- 許可設置
- 機器學習設置
- 監控設定
- 保護設置
- SQL訪問設置
- 觀察者設置
- 重要的Elasticsearch配置
- path.data 和 path.logs
- cluster.name
- node.name
- network.host
- 發現和集群形成設置
- 設置堆大小
- JVM堆轉儲路徑
- GC記錄
- 臨時目錄
- JVM致命錯誤日志
- 重要系統配置
- 配置系統設置
- 禁用交換
- 文件描述符
- 虛擬內存
- 線程數
- DNS緩存設置
- JNA臨時目錄未裝入 noexec
- 引導檢查
- 堆大小檢查
- 文件描述符檢查
- 內存鎖檢查
- 最大線程數檢查
- 最大文件大小檢查
- 虛擬內存最大大小檢查
- 最大地圖計數檢查
- 客戶端JVM檢查
- 使用串行收集器檢查
- 系統調用過濾器檢查
- OnError和OnOutOfMemoryError檢查
- 搶先檢查
- G1GC檢查
- 所有權限檢查
- 發現配置檢查
- 啟動Elasticsearch
- 停止Elasticsearch
- 將節點添加到集群
- 全集群重啟和滾動重啟
- 設置X-Pack
- 配置X-Pack Java客戶端
- 引導程序檢查X-Pack
- 升級Elasticsearch
- 滾動升級
- 完整集群重新啟動升級
- 升級前重新索引
- 重新索引到位
- 從遠程群集重新索引
- 集合
- 度量聚合
- 平均聚合
- 加權平均聚合
- 基數聚合
- 擴展統計匯總
- 地理邊界聚合
- 地心聚集
- 最大聚集
- 最小集合
- 百分位數匯總
- 百分數排名匯總
- 腳本式指標聚合
- 統計匯總
- 字符串統計匯總
- 總和
- 熱門合集
- 價值計數匯總
- 中位數絕對偏差匯總
- 桶聚合
- 鄰接矩陣匯總
- 自動間隔日期直方圖聚合
- 子集聚集
- 復合聚集
- 日期直方圖匯總
- 日期范圍匯總
- 多元化的采樣器聚合
- 篩選器匯總
- 篩選匯總
- 地理距離匯總
- GeoHash網格聚合
- GeoTile網格聚合
- 全局聚合
- 直方圖聚合
- IP范圍匯總
- 缺少聚合
- 嵌套聚合
- 父級匯總
- 范圍匯總
- rare terms 聚集
- 反向嵌套聚合
- 采樣器聚合
- 重要術語匯總
- 重要的文字匯整
- 術語匯總
- 鏟斗范圍字段的精妙之處
- 管道聚合
- 平均存儲桶聚合
- 導數聚合
- 最大存儲桶聚合
- 最小存儲桶聚合
- 總和桶聚合
- 統計數據桶匯總
- 擴展的統計數據桶聚合
- 百分位桶聚合
- 查詢DSL
- 查詢和過濾上下文
- 跨集群搜索
- 腳本編寫
- 如何使用腳本
- 映射
- 刪除映射類型
- 文字分析
- 文字分析總覽
- 模組
- 發現和集群形成
- 索引模塊
- 分析
- 攝取節點
- 管道定義
- 管理索引生命周期
- 索引總覽
- SQL訪問
- SQL總覽
- 監控集群
- 監控總覽
- 凍結指標
- 最佳實務
- 匯總或轉換數據
- 匯總歷史數據
- 設置集群以實現高可用性
- 備份集群
- 快照和還原
- 注冊資料庫
- 保護集群
- 安全概述
- 警報群集和索引事件
- Watcher入門
- 命令行工具
- 彈性搜索證書
- 如何
- 一般建議
- 專業術語
- REST API
- API約定
- 發布要點
- 7.6.0
- 重大變化
- 7.6
- 發行說明
- Elasticsearch版本7.6.2