es里為什么node和shard不是一對一的關系

提問:

既然多個shard會被分配到同一個node上,那么為什么不把多個shard合并成一個然后存在當前node上呢,簡而言之也就是讓node和shard形成一對一的關系呢 ?非常好的問題,這正是理解Elasticsearch分片(shard)設計思想的關鍵點!

為什么不讓一個 node 只存儲一個 shard,實現一對一關系?

主要原因有以下幾點:


1. 分片的數量 ≠ 節點的數量,彈性擴展和伸縮能力
  • 分片數固定(不可變),節點數可以動態變化
    一旦創建索引后,主分片數就不可更改(7.x后不能動態調整主分片數量)。但實際運行時,集群節點數量是可以動態增加或減少的。
  • 多shard 少node
    比如你有5個shard,只有3個node,它們怎么分?只能有node上有多個shard。
  • 擴容和負載均衡
    比如初期2個node,5個shard都只能堆在這2個node上。之后,水平擴容——加節點后,Elasticsearch會自動把這些shard搬過去并負載均衡,但分片數不會增加,如果一個node只能有一個shard,總shard數大于node數/小于node數,都無法自洽。
2. 粒度決定并發,分片越多并發能力越強
  • 多shard并發查詢/索引
    訪問或寫入單個shard是有性能瓶頸的,尤其是大數據場景下。
    多個shard可以并發處理,提高帶寬利用率和處理速度。
  • Node本身多核CPU,資源可以共享
    一個node比如16核,多個shard可以充分“吃滿”資源,同一node不同shard任務并發處理。
3. 容災與高可用策略靈活
  • 副本shard(replica shard)不能和主shard在同一個node上
    如果node與shard一對一,就是node掛=分片丟失,無法高可用。
  • 通過多shard和多副本分散在多個node上,可以靈活應對節點損壞,提升系統彈性和數據安全。
4. 管理和生命周期操作更靈活
  • 可以對單個shard做遷移、均衡、快照、恢復,細粒度管理,便于維護。
  • 滾動部署時更方便,可以無縫切換負載。
5. 節點數 >> 索引數量 or << 索引數量的情況
  • 一個集群同時有100個索引,每個索引5個shard,總共500個shard。node數量假如只有10個?只能每個node承載N個shard。
  • node數量遠超過shard數,單node可能一個都沒有/部分承載。

總結

Elasticsearch 設計分片(shard)機制,是為了實現彈性伸縮、負載均衡、并發性能提升和高可用容災“多目標”,絕不是一一對應就能解決的。讓shard數量遠多于node數量,是分布式架構的基本思想之一

所以,不讓shard和node一對一,而是允許多個shard分配在同一個node上,是為了支持彈性擴展、高并發、容災、高利用率等多種需求。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/914488.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/914488.shtml
英文地址,請注明出處:http://en.pswp.cn/news/914488.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

淺談npm,cnpm,pnpm,npx,nvm,yarn之間的區別

首先做一個基本的分類 名稱描述npm,cnpm,yarn,pnpm都是Javascript包管理器nvm是Node.js版本控制器npx命令行工具 I.npm,cnpm,yarn,pnpm npm (Node Package Manager) npm是Node.js默認的包管理器&#xff0c;隨Node.js的安裝會一起安裝。使用npm可以安裝&#xff0c;發布&…

滑動窗口-76.最小覆蓋子串-力扣(LeetCode)

一、題目解析1.不符合要求則返回空串("")2.子串中重復字符的數量要不少于t中該字符的數量二、算法原理解法1&#xff1a;暴力枚舉哈希表這里的暴力枚舉也可以優化&#xff0c;即在包含t中元素處枚舉&#xff0c;如在A、B和C處開始枚舉&#xff0c;減少不必要的枚舉 解…

從零構建搜索引擎 build demo search engine from scratch

從零構建搜索引擎 build demo search engine from scratch 我們每天都會使用搜索引擎&#xff1a;打開google等搜索引擎&#xff0c;輸入關鍵詞&#xff0c;檢索出結果&#xff0c;這是一次搜索&#xff1b;當打開歷史記錄旁邊的&#x1f50d;按鈕&#xff0c;輸入關鍵詞&#…

pytorch小記(二十九):深入解析 PyTorch 中的 `torch.clip`(及其別名 `torch.clamp`)

pytorch小記&#xff08;二十九&#xff09;&#xff1a;深入解析 PyTorch 中的 torch.clip&#xff08;及其別名 torch.clamp&#xff09;深入解析 PyTorch 中的 torch.clip&#xff08;及其別名 torch.clamp&#xff09;一、函數簽名二、簡單示例三、廣播支持四、與 Autograd…

快速分頁wpf

/*沒有在xaml設置上下文window.context是因為 命名空間一直對應不上 所以在xaml.cs 里面綁定*/ <Window x:Class"DataGrid.views.MainWindow"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft…

如何徹底禁用 Chrome 自動更新

如何徹底禁用 Chrome 自動更新 隨著谷歌將 Chrome 瀏覽器版本升級至 138&#xff0c;它即將徹底拋棄對 Manifest V2 擴展的支持。許多用戶希望將瀏覽器版本鎖定在 138&#xff0c;以繼續使用 uBlock Origin、Tampermonkey 等常用擴展。 本文總結了四種有效方法&#xff0c;幫助…

流批一體的“奧卡姆剃刀”:Apache Cloudberry 增量物化視圖應用解析

引言&#xff1a;流批一體&#xff0c;理想與現實的鴻溝 在數據驅動的今天&#xff0c;“實時”二字仿佛擁有魔力&#xff0c;驅使著無數企業投身于流批一體架構的建設浪潮中。我們渴望實時洞察業務變化&#xff0c;實時響應用戶需求。以 Apache Flink 為代表的流處理引擎&…

C# 入門教程(三):詳解字段、屬性、索引器及各類參數與擴展方法

文章目錄一、字段、屬性、索引器、常量1.字段2.屬性2.1 什么是屬性2.2 屬性的聲明2.3 屬性與字段的關系3 索引器4. 常量二、傳值 輸出 引用 數組 具名 可選參數&#xff0c;擴展方法2.1 傳值參數2.1.1 值類型 傳參2.1.2 引用類型 傳參2.2 引用參數2.2.1 引用參數-值類型 傳參2.…

《美術教育研究》是什么級別的期刊?是正規期刊嗎?能評職稱嗎?

?問題解答&#xff1a;問&#xff1a;《美術教育研究》是不是核心期刊&#xff1f;答&#xff1a;不是&#xff0c;是知網收錄的第一批認定學術期刊。問&#xff1a;《美術教育研究》級別&#xff1f;答&#xff1a;省級。主管單位&#xff1a; 安徽出版集團有限責任公司 主辦…

每日算法刷題Day47:7.13:leetcode 復習完滑動窗口一章,用時2h30min

思考: 遇到子數組/子字符串可以考慮能不能用滑動窗口&#xff0c; 定長:逆向思維,答案不定 最大長度/最小長度:一般求長度 越長越合法/越短越合法/恰好:一般求數量 主要思考窗口條件成立&#xff0c; 判斷條件是符合窗口條件(最小長度/越長越合法還是不符合(最大長度/越短越合法…

電流驅動和電壓驅動的區別

理解電流驅動和電壓驅動的區別對電路設計至關重要&#xff0c;尤其在高速、高抗噪要求的場景&#xff08;如LVDS&#xff09;。以下是兩者的核心對比&#xff1a;一、電壓驅動 (Voltage Drive) 核心原理&#xff1a; 驅動器輸出一個受控的電壓&#xff08;與負載阻抗無關&#…

宿舍電費查詢——以ZUA為例

宿舍電費查詢——以ZUA為例0. 安裝抓包環境手機端桌面端1. 登錄1.1 開啟抓包后進入繳費頁面&#xff1a;1.2 分析請求1.3 編寫登錄代碼2. 獲取樓棟及房間ID2.1 獲取樓棟ID2.2 編寫獲取樓棟ID代碼2.3 獲取房間ID2.4 編寫獲取房間ID代碼3. 獲取剩余電費&#xff1a;3.1 選擇房間號…

vue中計算屬性的介紹

Vue.js 中的計算屬性是基于它的響應式系統來實現的&#xff0c;它可以根據 Vue 實例的數據狀態來動態計算出新的屬性值。在 Vue 組件中&#xff0c;計算屬性常用于對數據進行處理和轉換&#xff0c;以及動態生成一些需要的數據。一、使用方式1.定義計算屬性&#xff1a; 在Vue組…

MFC UI控件CheckBox從專家到小白

文章目錄CheckBox勾選框控件控件與變量綁定控件點擊消息映射互斥CheckBox勾選框控件 控件與變量綁定 方案一&#xff1a; BOOL m_bEnable1; BOOL m_bEnable2; void A::DoDataExchange(CDataExchange* pDX) {DDX_Check(pDX, IDC_CK_1, m_bEnable1);DDX_Check(pDX, IDC_CK_2, …

阿爾卡特ACT 250 ATP 150 AND ATP 400 分子泵控制器TURBOMOLECULAR PUMP CONTROLLER ALCATEL

阿爾卡特ACT 250 ATP 150 AND ATP 400 分子泵控制器TURBOMOLECULAR PUMP CONTROLLER ALCATEL

python的小學課外綜合管理系統

前端開發框架:vue.js 數據庫 mysql 版本不限 后端語言框架支持&#xff1a; 1 java(SSM/springboot)-idea/eclipse 2.NodejsVue.js -vscode 3.python(flask/django)–pycharm/vscode 4.php(thinkphp/laravel)-hbuilderx 數據庫工具&#xff1a;Navicat/SQLyog等都可以 摘要 隨著…

實用技巧 Excel 與 XML互轉

一 概述 在android多語言適配中&#xff0c;可能提供的是excel格式的多語言翻譯&#xff0c;而且翻譯數量非常龐大。那手動一個一個往xml里面添加效率非常低&#xff0c;這時候就需要把excel快速轉為android可以直接用的資源文件string.xml二 轉換流程2.1 第一步任意文件夾或者…

云原生技術與應用-Containerd容器技術詳解

目錄 一.Containerd概述 1.什么是containerd 2.Containerd的起源與背景 二.Containerd架構 1.Containerd架構概述 2.核心組件解析 三.安裝配置Containerd 1.安裝Containerd 2.配置Containerd 四.Containerd基本操作 1.鏡像類操作 2.容器類操作 3.任務類操作 4.其他操作 一.…

LINUX714 自動掛載/nfs;物理卷

開機自動掛載 /etc/fstab vim /etc/fstab /dev/sdb2 /u2 ext4 defaults 0 0 mount -a [rootweb ~]# vim /etc/fstab [rootweb ~]# cat /etc/fstab# # /etc/fstab # Created by anaconda on Sat Apr 19 17:11:28 2025 # # Accessible filesystems, by reference, are maintai…

系統性學習C語言-第十六講-深入理解指針(6)

系統性學習C語言-第十六講-深入理解指針&#xff08;6&#xff09;1. sizeof 和 strlen 的對比1.1 sizeof 1.2 strlen 1.3 sizeof 和 strlen 的對比2. 數組和指針筆試題解析2.1 一維數組2.2 字符數組2.3 二維數組3. 指針運算筆試題解析3.1 題目1&#xff1a;3.2 題目…