Elasticsearch集群模式知多少?

序言

Elasticsearch經過多年發展,集群模式已經非常成熟,涵蓋的技術點非常多,對於使用者來說,掌握並熟練運用至關重要。那麼Elasticsearch有多少種集群模式呢?當前適合哪種集群模式?

本文不涉及實戰操作,僅限集群原理範圍探討,基於當前最新版本7.6.X。

集群模式

Elasticsearch節點設計支持多種角色,這個是實現集群最重要的前提,節點角色各司其職,也可以任意組合,職責重合。

Elasticsearch集群模式知多少?

ES節點角色類型

節點角色說明:

  • Master,集群管理
  • Voting,投票選舉節點
  • Data,數據節點
  • Ingest,數據編輯節點
  • Coordinate,協調節點
  • Machine Learning,集群學習節點

以下展開各種集群模式

1.單節點(入門)

Elasticsearch集群模式知多少?

單節點集群模式

單節點模式默認開啟所有節點特性,具備一個集群所有節點角色,可以認為是一個進程內部的集群。Elasticsearch在默認情況下,不用任何牌配置也可以運行,這也是它設計的精妙之處,相比其它很多數據產品集群配置,如Mongodb,簡化了很多,起步入門容易。

2.基本高可用(初級)

Elasticsearch集群模式知多少?

集群基本高可用模式

Elasticsearch集群要達到基本高可用,一般要至少啟動3個節點,3個節點互相連接,單個節點包括所有角色,其中任意節點停機集群依然可用。為什麼要至少3個節點?因為集群選舉算法奇數法則。

3.數據與管理分離(中級)

Elasticsearch集群模式知多少?

集群數據節點與管理節點分離

Elasticserach管理節點職責是管理集群元數據、索引信息、節點信息等,自身不設計數據存儲與查詢,資源消耗低;相反數據節點是集群存儲與查詢的執行節點。

管理節點與數據節點分離,各司其職,任意數據節點故障或者全部數據節點故障,集群仍可用;管理節點一般至少啟動3個,任意節點停機,集群仍正常運行。

4.數據與協調分離(高級)

Elasticsearch集群模式知多少?

集群數據節點與協調節點分離

Elasticsearch內部執行查詢或者更新操作時,需要路由,默認所有節點都具備此職能,特別是大的查詢時,協調節點需要分發查詢命令到各個數據節點,查詢後的數據需要在協調節點合併排序,這樣原有數據節點代價很大,所以分離職責,詳細技術原理可以觀看騰訊課堂《Elastic技術原理:數據查詢》,裡面講解了Elastic執行查詢的過程。

5.協調讀寫分離(高級)

Elasticsearch集群模式知多少?

集群實現讀寫分離

Elasticsearch設置讀寫分離指的是在協調節點上,不是數據節點上,集群大量的查詢需要消耗協調節點很大的內存與CPU合併結果,同時集群大量的數據寫入會阻塞協調節點,所以在協調節點上做讀寫分離很少必要,也很簡單,由集群設計搭建時規劃好即可。

6.數據節點標籤(高級)

Elasticsearch集群模式知多少?

集群數據節點差異化分組

Elasticsearch給數據節點標籤,目的是分離索引數據的分佈,在一個集群規模中等以上,索引數據用途多種多樣,對於數據節點的資源需求不一樣,數據節點的配置可以差異化,有的數據節點配置高做實時數據查詢,有的數據節點配置低做歷史數據查詢,有的數據節點做專門做索引重建。

Elasticsearch集群部署時需要考慮基礎硬件條件,集群規模越來越大,需要多個數據中心,多個網絡服務、多個服務器機架,多個交換機等組成,索引數據的分佈與這些基礎硬件條件都密切相關。

7.主副分片分離(高級)

Elasticsearch集群模式知多少?

集群索引數據主分片與副本分片分離

Elasticsearch集群規模大了之後得考慮集群容災,若某個機房出現故障,則可以迅速切換到另外的容災機房。

8.跨集群操作(高級)

Elasticsearch集群模式知多少?

跨集群遠程操作訪問

Elasticsearch單個集群規模不能無限增長,理論上可以,實際很危險,通過創建多個分集群分解,集群直接建立直接連接,客戶端可以通過一個代理集群訪問任意集群,包括代理集群本身數據。

Elasticsearch集群支持異地容災,採用的是跨集群複製的機制,與同一集群主分片副本分片分離是不同的概念,2個集群完全是獨立部署運行,僅數據同步複製。

9.跨集群版本操作(高級)

Elasticsearch集群模式知多少?

Elasticsearch跨集群版本操作

Elasticsearch版本更新很快,已知問題修復很快,新特性新功能推出很快,一日不學,如隔三秋。有的集群數據重要性很高,穩定第一,不能隨意升級,有的業務場景剛好需要最新版本新功能新特性支持。

結語

經驗總結

Elasticsearch集群模式種類挺多,每種集群模式都有它的應用場景以及解決實際的問題,每種集群模式之間也可以輕易轉換。所以說ES玩的好,下班下得早。

內容來源

內容來源於筆者工作中運用多種技術棧解決實際場景需求,得出的一些實戰經驗與總結思考,提供後來者借鑑參考,請勿抄襲,內容原創,轉載請註明。


關於我們

  • 李猛(ynuosoft),Elastic-stack產品深度用戶,通過Elastic工程師認證,2012年接觸Elasticsearch,對Elastic-Stack技術棧開發、架構、運維等方面有深入體驗,實踐過多種Elastic項目,最暴力的大數據分析應用,最複雜的業務系統應用;業餘為企業提供Elastic-stack諮詢培訓以及調優實施;多年實戰經驗,愛搗騰,擅長大數據,機器學習,系統架構領域。
  • 深圳星圖智能(starmapnet.com),星圖智能是Elastic官方MSP技術合作夥伴


分享到:


相關文章: