主要知識點:
1、Elasticsearch對復雜分布式機制的透明隱藏特性
2、Elasticsearch的垂直擴容與水平擴容
3、增減或減少節點時的數據rebalance
4、master節點
5、節點對等的分布式架構
--------------------------------------------------------------------------------------------------------------------
1、Elasticsearch對復雜分布式機制的透明隱藏特性
Elasticsearch是一套分布式的系統,分布式是為了應對大數據量。
Elasticsearch隱藏了復雜的分布式機制
(1)、分片機制(我們之前隨隨便便就將一些document插入到es集群中去了,我們有沒有care過數據怎么進行分片的,數據到哪個shard中去,es會自動幫我們實現這些功能)
(2)、cluster discovery(集群發現機制,我們之前在做那個集群status從yellow轉green的實驗里,直接啟動了第二個es進程,那個進程作為一個node自動就發現了集群,並且加入了進去,還接受了部分數據,ES會自動發現集群,並自動為這些新加入的集群分配replica shard,並接收數據保持負載均衡)
(3)、shard負載均衡(舉例,假設現在有3個節點,總共有25個shard要分配到3個節點上去,es會自動進行均勻分配,以保持每個節點的均衡的讀寫負載請求)
(4)、shard副本,請求路由,集群擴容,shard重分配等。
--------------------------------------------------------------------------------------------------------------------
2、Elasticsearch的垂直擴容與水平擴容
假設現在有6台服務器,每台服務器1T的容量,如果現在有8T的數據,此時就有兩種方案。
(1)、垂直擴容:或者重新購置兩台服務器,每台2T,替換掉原來的2台老的服務器。這種方法要采購更強大的服務器, 成本非常高昂,而且會有瓶頸,假設世界上最強大的服務器容量就是10T,但是當你的總數據量達到5000T的時候,你要采購多少台最強大的服務器啊。
(2)、水平擴容:直接再增加兩台一T的服務器,放入集群中,這是業界經常采用的方案,采購越來越多的普通服務器,性能比較一般,但是很多普通服務器組織在一起,就能構成強大的計算和存儲能力
成本需求分析
普通服務器:1T,1萬,100萬
強大服務器:10T,50萬,500萬
(3)、擴容對應用程序的透明性,應用程序的所有操作均是針對ES集群,而不會關心是否已擴容,所以擴容后對應用程序的使用無影響。
--------------------------------------------------------------------------------------------------------------------
3、增減或減少節點時的數據自動rebalance,這樣ES會自動調節各個shard的負載,保持負載均衡
--------------------------------------------------------------------------------------------------------------------
4、master節點
es集群中總會有一個master節點,主要任務是管理元數據:索引創建或刪除,維護索引元數據,節點的增加和移出,維護集群的元數據。默認情況下,es集群會自動選出一個節點作為master節點,mater節點不承載所有的請求,不會存在單點瓶頸的情況。主要功能:
(1)創建或刪除索引
(2)增加或刪除節點
--------------------------------------------------------------------------------------------------------------------
5、節點對等的分布式架構
(1)節點對等,每個節點都能接收所有的請求
(2)任何一個節請接收到請求后,都可以自動把這個請求路由到有相關數據的其他節點去處理這個請求。
(3)最原始的收到請求的節點會負責收集其他節點的響應數據,最后把這個數據返回給客戶端。
以下是分布式系統的圖解