ElasticSearch教程-分散式叢集之叢集內部工作方式
阿新 • • 發佈:2018-12-22
補充章節
正如之前提及的,這是關於Elasticsearch在分散式環境下工作機制的一些補充章節的第一部分。這個章節我們解釋一些通用的術語,例如叢集(cluster)、節點(node)和分片(shard),Elasticsearch的擴充套件機制,以及它如何處理硬體故障。
儘管這章不是必讀的——你在使用Elasticsearch的時候可以長時間甚至永遠都不必擔心分片、複製和故障轉移——但是它會幫助你理解Elasticsearch內部的工作流程,你可以先跳過這章,以後再來查閱。
Elasticsearch用於構建高可用和可擴充套件的系統。擴充套件的方式可以是購買更好的伺服器(縱向擴充套件(vertical scale or scaling up))或者購買更多的伺服器(橫向擴充套件(horizontal scale or scaling out))。
Elasticsearch雖然能從更強大的硬體中獲得更好的效能,但是縱向擴充套件有它的侷限性。真正的擴充套件應該是橫向的,它通過增加節點來均攤負載和增加可靠性。
對於大多數資料庫而言,橫向擴充套件意味著你的程式將做非常大的改動才能利用這些新新增的裝置。對比來說,Elasticsearch天生就是分散式的:它知道如何管理節點來提供高擴充套件和高可用。這意味著你的程式不需要關心這些。
在這章我們將探索如何建立你的叢集(cluster)、節點(node)和分片(shards),使其按照你的需求進行擴充套件,並保證在硬體故障時資料依舊安全。