序言
Elasticsearch經過多年發展,集群模式已經非常成熟,涵蓋的技術點非常多,對於使用者來說,掌握並熟練運用至關重要。那麼Elasticsearch有多少種集群模式呢?當前適合哪種集群模式?
本文不涉及實戰操作,僅限集群原理範圍探討,基於當前最新版本7.6.X。
集群模式
Elasticsearch節點設計支持多種角色,這個是實現集群最重要的前提,節點角色各司其職,也可以任意組合,職責重合。
節點角色說明:
- Master,集群管理
- Voting,投票選舉節點
- Data,數據節點
- Ingest,數據編輯節點
- Coordinate,協調節點
- Machine Learning,集群學習節點
以下展開各種集群模式
1.單節點(入門)
單節點模式默認開啟所有節點特性,具備一個集群所有節點角色,可以認為是一個進程內部的集群。Elasticsearch在默認情況下,不用任何牌配置也可以運行,這也是它設計的精妙之處,相比其它很多數據產品集群配置,如Mongodb,簡化了很多,起步入門容易。
2.基本高可用(初級)
Elasticsearch集群要達到基本高可用,一般要至少啟動3個節點,3個節點互相連接,單個節點包括所有角色,其中任意節點停機集群依然可用。為什麼要至少3個節點?因為集群選舉算法奇數法則。
3.數據與管理分離(中級)
Elasticserach管理節點職責是管理集群元數據、索引信息、節點信息等,自身不設計數據存儲與查詢,資源消耗低;相反數據節點是集群存儲與查詢的執行節點。
管理節點與數據節點分離,各司其職,任意數據節點故障或者全部數據節點故障,集群仍可用;管理節點一般至少啟動3個,任意節點停機,集群仍正常運行。
4.數據與協調分離(高級)
Elasticsearch內部執行查詢或者更新操作時,需要路由,默認所有節點都具備此職能,特別是大的查詢時,協調節點需要分發查詢命令到各個數據節點,查詢後的數據需要在協調節點合併排序,這樣原有數據節點代價很大,所以分離職責,詳細技術原理可以觀看騰訊課堂《Elastic技術原理:數據查詢》,裡面講解了Elastic執行查詢的過程。
5.協調讀寫分離(高級)
Elasticsearch設置讀寫分離指的是在協調節點上,不是數據節點上,集群大量的查詢需要消耗協調節點很大的內存與CPU合併結果,同時集群大量的數據寫入會阻塞協調節點,所以在協調節點上做讀寫分離很少必要,也很簡單,由集群設計搭建時規劃好即可。
6.數據節點標籤(高級)
Elasticsearch給數據節點標籤,目的是分離索引數據的分佈,在一個集群規模中等以上,索引數據用途多種多樣,對於數據節點的資源需求不一樣,數據節點的配置可以差異化,有的數據節點配置高做實時數據查詢,有的數據節點配置低做歷史數據查詢,有的數據節點做專門做索引重建。
Elasticsearch集群部署時需要考慮基礎硬件條件,集群規模越來越大,需要多個數據中心,多個網絡服務、多個服務器機架,多個交換機等組成,索引數據的分佈與這些基礎硬件條件都密切相關。
7.主副分片分離(高級)
Elasticsearch集群規模大了之後得考慮集群容災,若某個機房出現故障,則可以迅速切換到另外的容災機房。
8.跨集群操作(高級)
Elasticsearch單個集群規模不能無限增長,理論上可以,實際很危險,通過創建多個分集群分解,集群直接建立直接連接,客戶端可以通過一個代理集群訪問任意集群,包括代理集群本身數據。
Elasticsearch集群支持異地容災,採用的是跨集群複製的機制,與同一集群主分片副本分片分離是不同的概念,2個集群完全是獨立部署運行,僅數據同步複製。
9.跨集群版本操作(高級)
Elasticsearch版本更新很快,已知問題修復很快,新特性新功能推出很快,一日不學,如隔三秋。有的集群數據重要性很高,穩定第一,不能隨意升級,有的業務場景剛好需要最新版本新功能新特性支持。
結語
經驗總結
Elasticsearch集群模式種類挺多,每種集群模式都有它的應用場景以及解決實際的問題,每種集群模式之間也可以輕易轉換。所以說ES玩的好,下班下得早。
內容來源
內容來源於筆者工作中運用多種技術棧解決實際場景需求,得出的一些實戰經驗與總結思考,提供後來者借鑑參考,請勿抄襲,內容原創,轉載請註明。
關於我們
- 李猛(ynuosoft),Elastic-stack產品深度用戶,通過Elastic工程師認證,2012年接觸Elasticsearch,對Elastic-Stack技術棧開發、架構、運維等方面有深入體驗,實踐過多種Elastic項目,最暴力的大數據分析應用,最複雜的業務系統應用;業餘為企業提供Elastic-stack諮詢培訓以及調優實施;多年實戰經驗,愛搗騰,擅長大數據,機器學習,系統架構領域。
- 深圳星圖智能(starmapnet.com),星圖智能是Elastic官方MSP技術合作夥伴